错误:字符串必须是原子矢量R.

SJS*_*013 3 r vector

我是R的新手,我在数据集上使用stringr时遇到问题.我试图通过变量将数据与其中的单词"restaurant"进行子集化.我经常收到此错误消息.

str_detect(matrix(expandedDataFrame[1,12:21],1,
                 ncol(expandedDataFrame[,12:21])),"Restaurants")
Error: String must be an atomic vector
Run Code Online (Sandbox Code Playgroud)

ags*_*udy 10

你得到一个错误,因为str_detect期望一个atomic类型作为第一个参数.我想如果您使用as.matrix而不是matrix您的代码将起作用.

确实:

is.atomic(matrix(data.frame(c=1:10,c1=5:1)))
[1] FALSE
> is.atomic(as.matrix(data.frame(c=1:10,c1=5:1)))
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

所以你的代码变成:

str_detect(as.matrix(expandedDataFrame[1,12:21],1,
                 ncol(expandedDataFrame[,12:21])),"Restaurants")
Run Code Online (Sandbox Code Playgroud)

但既然你没有给出一个可重复的例子,这只是猜测......