r-根据其他列的多个条件进行检查时,是否在其他列中插入值



我有两列需要运行一些条件,以便将样本分类为状态。我创建了一个空的状态列。然后运行这两列的几个条件(pp&ff(,尝试在新列中插入相应的值。

当我运行这个时,我没有得到任何错误,但只有第一行有效:

df$status[which(df$ff >7 & df$pp >9)] <- "type_a"

type_a值正确地放置在状态列中,但所有其他行保持为NA。我在两列的几行中稀疏地有两三个奇数NA值,但就是这样。我不认为这会阻止它工作吗?

这就是我目前正在使用的:

#Adding a column called status
df$status <- NA
df$status[which(df$ff >7 & df$pp >9)] <- "type_a"
df$status[which(df$ff <4 & df$pp <4)] <- "type_b"
df$status[which(df$ff <=4 & df$ff >=7 & df$pp >=8.5 & df$pp <=9)] <- "type_c"

您的type_c中有一个逻辑错误,这永远不会是真的:

df$ff <=4 & df$ff >=7

一个数字不能同时小于4和大于7。

你可能想捕捉包容性范围[4,7],你可能自己就能做到。

最新更新