这应该是非常简单的,但即使在检查了所有文档和在线示例后,我也没有得到它.
我想使用switch()来替换字符向量的值.
一个假的,极其简单,可重复的例子:
test<-c("He is", "She has", "He has", "She is")
Run Code Online (Sandbox Code Playgroud)
假设我想将"1"包括动词"to be"和"2"分配给句子,包括动词"to have".以下不起作用:
test<-switch(test,
"He is"=1,
"She is"=1,
"He has"=2,
"She has"=2)
Run Code Online (Sandbox Code Playgroud)
错误信息:
+ + + + Error in switch(test, `He is` = 1, `She is` = 1, `He has` = 2, `She has` = 2) :
EXPR must be a length 1 vector
Run Code Online (Sandbox Code Playgroud)
我认为EXPR确实是长度为1的向量,所以有什么不对?
我认为可能是R期望的字符作为替换,但是既没有将switch()包装成"as.integer"也没有包含以下工作:
test<-switch(test,
"He is"="1",
"She is"="1",
"He has"="2",
"She has"="2")
Run Code Online (Sandbox Code Playgroud)
也许它没有矢量化,我应该做一个循环?是吗?考虑到R的强度是矢量化,会令人失望.提前致谢!