小编tor*_*art的帖子

在R中使用switch()来替换矢量值

这应该是非常简单的,但即使在检查了所有文档和在线示例后,我也没有得到它.

我想使用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的强度是矢量化,会令人失望.提前致谢!

string replace r switch-statement

20
推荐指数
4
解决办法
1万
查看次数

标签 统计

r ×1

replace ×1

string ×1

switch-statement ×1