【问题标题】:Non character argument in R string split function (strsplit)R字符串拆分函数(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 你可以回答并接受你自己的问题。

标签: string r for-loop strsplit


【解决方案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)
}

【讨论】:

    猜你喜欢
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2022-12-08
    • 2019-07-11
    相关资源
    最近更新 更多