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 &lt;- as.character(blat$LRwAvg) 在循环修复之前! @AWE 你可以回答并接受你自己的问题。 【参考方案1】:

正如 agstudy 在循环修复之前暗示 blat$LRwAvg &lt;- 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语言--字符串操作

将文件名拆分为名称,扩展名

如何提取R的strsplit()的结果[重复]

R语言使用quantile函数计算评分值的分位数(20%40%60%80%)使用逻辑操作符将对应的分位区间(quantile)编码为分类值生成新的字段strsplit函数将学生的名和姓拆分

在 R 中拆分 CamelCase

拆分字符串中的第一个逗号