【发布时间】:2016-04-11 15:12:36
【问题描述】:
我正在尝试使用 rpy2 来运行 questionr 包中的 multi.split 函数。
这是我的代码
from rpy2 import robjects
from rpy2.robjects.packages import importr
questionr = importr(str('questionr'))
data = ["red/blue", "green", "red/green", "blue/red", "red/blue", "green", "red/green", "blue/red", "red/blue", "green", "red/green", "blue/red", "red/blue", "green", "red/green", "blue/red", "red/blue", "green"]
data_vector = robjects.StrVector(data)
multi_split = questionr.multi_split
data_table = multi_split(data_vector, split_char='/')
在最后一行之后,我收到以下错误:
RRuntimeError: Error in `colnames<-`(`*tmp*`, value = c("c(\"red/blue\",_\"green\",_\"red/green\",_\"blue/red\",_\"red/blue\",_\"green\",_.blue", :
'names' attribute [4] must be the same length as the vector [3]
我认为这与我发送的向量的大小有关,因为如果我删除最后一项
data = ["red/blue", "green", "red/green", "blue/red", "red/blue", "green", "red/green", "blue/red", "red/blue", "green", "red/green", "blue/red", "red/blue", "green", "red/green", "blue/red", "red/blue"]
然后运行
data_vector = robjects.StrVector(data)
multi_split = questionr.multi_split
data_table = multi_split(data_vector, split_char='/')
我没有收到任何错误消息。如果我更改“split_char”变量,例如:
data_table = multi_split(data_vector, split_char='.')
无论我发送的数组大小如何,我都不会收到错误消息。
我尝试直接在 R(使用 R-Studio)中运行匹配的代码,它运行时没有问题。 关于如何解决此问题的任何想法?
【问题讨论】: