【发布时间】:2019-01-17 01:33:07
【问题描述】:
我有一个由 3 列组成的数据框,每列代表受访者所属的组。受访者属于这些组之一,并负责在他们所属的组列中提供他们的数字回答。因此,对于给定的行,其他 2 列将是空白的。
我需要创建一个包含他们分数的列,无论他们属于哪个组。在 Stackoverflow 上,有一个与我类似的问题,但它是针对 Python 的(参见 here)
以下是数据的样子和我所做的:
library(dplyr)
df <- data.frame(grp_A = c(13, NA, NA, NA, NA, 20, NA),
grp_B = c(NA, 59, 66, NA, NA, NA, NA),
grp_C = c(NA, NA, NA, 23, 42, NA, NA))
df$value <- apply(select(df, grp_A, grp_B, grp_C), 1,
function(x) x[!is.na(x)])
由于某些行中缺少数据,R 错误地将新列转换为列表。我尝试使用as.data.frame 将其重新转换回数据框,但没有成功。
请告知如何防止新创建的列变成列表。
【问题讨论】: