或者在ifelse中命令

时间:2014-05-02 12:49:28

标签: r if-statement

不幸的是,我的数据状况不佳。因此,我必须做很多调整,但我还做不到。我的test.data看起来像这样:

a <- c("Arthur", "Markus", "Kommission fuer Wirtschaft und Abgaben", "Meyer", "Hans", "Delegation XY")
b <- c(1,2,3,4,5,6)
testdata <- data.frame(a,b)

我想要一个新列c,其中只有b包含单词&#34; Kommission&#34;才会包含a的值。或&#34;代表团&#34;。

我在第一步尝试了这个:

testdata$c <- ifelse((grepl('Kommission',testdata$a)==TRUE), testdata$b,NA)

这很有效。我的问题是我需要b的值为&#34;代表团&#34;太。 随着

testdata$c <- ifelse((grepl('Delegation',testdata$a)==TRUE), testdata$b,NA)

我只覆盖上一个命令。最后testdata应如下所示:

a                                      b  c 
Arthur                                 1 NA
Markus                                 2 NA
Kommission fuer Wirtschaft und Abgaben 3  3
Meyer                                  4 NA
Hans                                   5 NA
Delegation XY                          6  6

我可以连接几个&#34;或 - 语句&#34;在ifelse?谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

如评论中所述,答案包含|

testdata$c <- ifelse((grepl('Kommission',testdata$a)==TRUE) | grepl('Delegation',testdata$a)==TRUE, testdata$b,NA)

答案 1 :(得分:0)

您可以使用

testdata$c <- ifelse(testdata$a %in% c("Kommission","Delegation"),testdata$b,NA)