R循环和变异

时间:2018-04-10 13:46:42

标签: r loops for-loop

我是R.的新手。我有一个备注的专栏 - "肯定"。 "负"和其他人。

我想创建一个名为" range"的新列。在本专栏中,我想基于正面/负面等来写评论。如果remarks =="positive"我想写相应的单元格"第一圈"如果是负面"第二圈"。 dataset = balls。我写的是:

library(dplyr)
balls %>%
    mutate(ranges) %>%
    for (i in balls$sentiment) {
        if (i=="positive"){
            balls$ranges = "1st lap"
        } else if (i=="negative") {
            balls$ranges = "2nd lap"
        } else {
            balls$ranges = ""
        }
    }

但它没有做好工作。如何写这个....是否有任何偏移函数,就像我们在Excel VBA中用于for循环?的问候,

2 个答案:

答案 0 :(得分:2)

只是扩展评论,我想这可能就是你所追求的目标?

mutate(ranges=ifelse(sentiment=="positive","1st lap", ifelse(sentiment=="negative","2nd lap","")))

答案 1 :(得分:0)

以下是基于case_when的解决方案:

df <- data.frame(ID=1:6, sentiment= c("positive", "negative", "other", "positive", "bb", "positive"))
df$ranges <- case_when(
  df$sentiment == "positive" ~"1st lap",
  df$sentiment == "negative" ~"2nd lap",
  TRUE ~ ""
)