R字符串拆分函数(strsplit)中的非字符参数
Posted
技术标签:
【中文标题】R字符串拆分函数(strsplit)中的非字符参数【英文标题】:Non character argument in R string split function (strsplit) 【发布时间】: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 你可以回答并接受你自己的问题。
【参考方案1】:
正如 agstudy 在循环修复之前暗示 blat$LRwAvg <- as.character(blat$LRwAvg)
blat$meanLRwAvg <- blat$gtFrqAvg #or some other variable in data frame with equal length
blat$LRwAvg <- as.character(blat$LRwAvg)
for (i in 1:50)
y <- as.numeric(unlist(strsplit(blat$LRwAvg[i], "\\:")))
blat$meanLRwAvg[i]=mean(y)
【讨论】:
以上是关于R字符串拆分函数(strsplit)中的非字符参数的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用quantile函数计算评分值的分位数(20%40%60%80%)使用逻辑操作符将对应的分位区间(quantile)编码为分类值生成新的字段strsplit函数将学生的名和姓拆分