You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中将数据框的N/A列转换为X列的独立行

解决方案

首先先构造你的原始数据框:

df <- data.frame(
  X = c("Proposal 1", "Proposal 2"),
  `Positive answers` = c(10, 15),
  `N/A` = c(6, 6)
)

你用gather()没得到预期结果,是因为这个函数是用来把多列宽数据转成长格式的,而你的需求是把N/A列的数值提取出来,作为新的一行添加到原有数据里,不是标准的宽转长场景。下面给你两种可行的方法:

方法一:用tidyverse工具包(推荐)

library(tidyverse)

# 提取原有数据的前两列,再添加N/A对应的行
result <- df %>%
  select(X, `Positive answers`) %>%
  add_row(X = "N/A", `Positive answers` = df$`N/A`[1])

如果N/A列的数值可能不一致,你想保留所有不同的数值行,可以改成:

result <- df %>%
  select(X, `Positive answers`) %>%
  bind_rows(
    df %>%
      distinct(`N/A`) %>%
      rename(X = `N/A`, `Positive answers` = `N/A`) %>%
      mutate(X = as.character(X))
  )

方法二:Base R原生方法

不用额外装包,直接用基础函数实现:

# 提取主数据部分
df_main <- df[, c("X", "Positive answers")]
# 构造N/A对应的行
df_na <- data.frame(X = "N/A", `Positive answers` = df$`N/A`[1])
# 合并数据框
result <- rbind(df_main, df_na)

运行后就能得到你想要的目标数据框:

> result
           X Positive answers
1 Proposal 1               10
2 Proposal 2               15
3       N/A                6

内容的提问来源于stack exchange,提问作者ACD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 11:21:01