4

我是 R 新手,在数据集上使用 stringr 时遇到问题。我试图通过变量对数据进行子集化,其中包含餐厅一词,而不是那些没有的变量。我经常收到此错误消息。

str_detect(matrix(expandedDataFrame[1,12:21],1,
                 ncol(expandedDataFrame[,12:21])),"Restaurants")
Error: String must be an atomic vector
4

1 回答 1

11

你得到一个错误,因为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

所以你的代码变成:

str_detect(as.matrix(expandedDataFrame[1,12:21],1,
                 ncol(expandedDataFrame[,12:21])),"Restaurants")

但由于你没有给出一个可重现的例子,这只是一个猜测......

于 2013-11-08T07:27:38.417 回答