【发布时间】:2015-08-26 11:19:25
【问题描述】:
我正在尝试在我的数据集中创建一个新列,为每一行提供一个输出,具体取决于来自预先存在的列的输入。
在此输出列中,我希望“NA”如果给定行中的任何输入值为“0”。 否则(如果没有任何输入为 0),我希望该行的输出是输入的唯一值的数量。
我认为解决方案会使用嵌套在 apply 函数中的 ifelse 函数,但我收到了一个我不理解的错误。
data$output <- apply(data, 1, function(x) {ifelse(x == 0, NA, length(unique(x)))})
$<-.data.frame(*tmp*, "输出", value = c(3L, 3L, 3L, 3L, 中的错误: 替换有 3 行,数据有 4
我不知道为什么替换有 3 行,因为我认为 apply 只是对我的 4 行中的每一行执行相同的功能。
【问题讨论】:
标签: r if-statement nested dataframe apply