【发布时间】:2020-09-23 19:31:03
【问题描述】:
我不是高级 R 用户,但通常我迟早会找到我需要的帮助。 好吧,这次不是。 我有一个名为“df”的数据框,我正在尝试创建一个额外的列“Sel”来存储基于其他列信息的信息。 为此,我使用了一个嵌套的 ifelse 函数,下面是我使用的代码,它适用于前两个条件,但不适用于我使用 AND 运算符的后两个条件。 在将用法与其他示例进行比较时,我看不出有任何区别,也没有出现错误,只有与该条件相关的语句未被粘贴/打印。 (我也试过&&)。 我究竟做错了什么?提前感谢您的帮助!
df <- data.frame(
Gene = c("A","B","C","D","E"),
P_a = c(NA, NA, 21010, 14941,12),
E_a = c(NA, NA, "miss_b", "miss_b",NA),
P_b = c(1,200,32,NA,21),
E_b = c(NA, NA, "miss_a", NA,"miss_a"),
Eq = c("no", "yes", NA, NA,NA )
)
df$Sel <- ifelse(
(df$Eq == "no"), "same",
ifelse((df$Eq == "yes"), "diff",
ifelse (df$E_a == "miss_b" &
df$E_b == "miss_a", "G_P",
ifelse(is.na(df$P_b & df$E_b &
df$Eq),"in","out"
))))
这是我希望用我的代码生成的 result_df
df_result <- data.frame(
Gene = c("A","B","C","D","E"),
P_a = c(NA, NA, 21010, 14941,12),
E_a = c(NA, NA, "miss_b", "miss_b",NA),
P_b = c(1,200,32,NA,21),
E_b = c(NA, NA, "miss_a", NA,"miss_a"),
Eq = c("no", "yes", NA, NA, NA ),
Sel = c("same","diff", "G_P","in", "out")
)
【问题讨论】:
-
如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。请不要发布数据图片,因为我们无法复制/粘贴这些值进行测试。
-
我知道你是完全正确的。我会执行的。
标签: r if-statement logical-operators