ifelse in 'r' 返回 NA 值

  • 本文关键字:NA 返回 in ifelse r
  • 更新时间 :
  • 英文 :


我有两个数据框,我想将一个数据框的内容与另一个数据框的内容匹配,为此我使用以下函数:

t <- read.csv("F:/M.Tech/Semester4/Thesis/Code/Book1.csv")
s <- read.csv("F:/M.Tech/Semester4/Thesis/Code/a4.csv")
x <- nrow(s)
y <- nrow(t)
for(i in 1:x)
    for(j in 1:y)
        ifelse (match(s[i,2], t[j,1]), s[i,9] <- t[j,2] , s[i,9] <- 0)

对于此代码,当内容匹配时,它可以正常工作。但 other 部分返回 NA。如何将 0 分配给所有不匹配的地方。我得到的结果是:

# word  count   word    tf score    word robability log values  TFxIDF score Keyword Probability
# yemen 380 yemen   1   0.053938964 2.919902172 2.919902172 NA
# strikes   116 strikes 0.305263158 0.016465578 4.106483233 1.25355804  0.5
# deadly    105 deadly  0.276315789 0.014904187 4.206113074 1.162215455 0.7
# new   88  new 0.231578947 0.012491128 4.38273661  1.014949531 NA

而不是NA.我想在那里存储 0。

问题 1:ifelse返回两个值之一,具体取决于测试条件。它不是根据条件执行代码片段 1 或代码片段 2 的流控制函数。

这是正确的:

my_var <- ifelse(thing_to_test, value_if_true, value_if_false)

这是错误的,在 R 中没有意义

ifelse(thing_to_test, my_var <- value_if_true, my_var <- value_if_false)

问题 2:确保thing_to_test是逻辑表达式。

把这些东西放在一起,你可以看到你应该遵循理查德·斯克里文留下的指示作为上面的评论

最新更新