【发布时间】:2013-03-04 00:38:09
【问题描述】:
这行得通
x <- "0.466:1.187:2.216:1.196"
y <- as.numeric(unlist(strsplit(x, ":")))
blat$LRwAvg 的值看起来都像上面的X,但这不起作用
for (i in 1:50){
y <- as.numeric(unlist(strsplit(blat$LRwAvg[i], "\\:")))
blat$meanLRwAvg[i]=mean(y)
}
因为:
strsplit(blat$LRwAvg[i], "\:") 中的错误:非字符参数
我有一个、两个或空反斜杠都没关系。
我的问题是什么? (一般来说,我的意思是在这项特殊任务中,技术上)
【问题讨论】:
-
class(blat$LRwAvg)的输出是什么,能否给我们一些来自blat$LRwAvg的数据 -
@AWE 是错误类型。将参数强制转换为 character ,
as.character(blat$LRwAvg) -
@alexwhan 我注意到这样删除了我的评论,但不够快:$。看起来是因素的问题。因此,按照@agstudy 的建议强制转换字符,或者在创建 data.frame 时使用
stringsAsFactors=FALSE。 -
@alexwhan, class(blat$LRwAvg) = factor, @agstudy,
blat$LRwAvg <- as.character(blat$LRwAvg)在循环修复之前! -
@AWE 你可以回答并接受你自己的问题。
标签: string r for-loop strsplit