【发布时间】:2022-07-06 03:25:42
【问题描述】:
在 R 中,我试图在数据框中的列 (a) 上运行应用函数,并将结果放入新列 (b)。 (c) 列是整数类,由整数 0 - 5 组成。
我的代码是:
df$b <- apply(df, 1, FUN = function (x) if (x["a"] == 0) x["b"] = "a"
else if (x["a"] == 1) x["b"] = "b"
else if (x["a"] == 2) x["b"] = "c"
else if (x["a"] == 3) x["b"] = "d"
else if (x["a"] == 4) x["b"] = "e"
else x["b"] = "f")
当 a 列是整数类时,所有逻辑都失败,因此 b 列中的所有行都被分配“f”。但是,当我使用 as.character() 将 a 列更改为字符类时,逻辑计算正确。为什么会这样?
【问题讨论】:
-
请分享您的数据,以便我们提供帮助。最有可能你在这里需要
ifelse()而不是应用/if 语句 -
您的代码在这里与
df <- data.frame(a = as.integer(c(0,1,2,3,4)))一起工作正常。请提供一些失败的数据以及有关您尝试执行的操作的更多信息。这可能不是正确的方法。
标签: r