且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

R字符串拆分函数中的非字符参数(strsplit)

更新时间:2023-02-21 12:43:30

由于agstudy暗示 blat $ LRwAvg < - as.character(blat $ LRwAvg)在循环之前修复它

  blat $ meanLRwAvg&lt ;  -  blat $ gtFrqAvg#或数据框中的其他一些等长的变量
blat $ LRwAvg< - as.character(blat $ LRwAvg)
for(i in 1:50){$ b $通过< - as.numeric(unlist(strsplit(blat $ LRwAvg [i],\\:)))
blat $ meanLRwAvg [i] = mean(y)
}


This works

x <- "0.466:1.187:2.216:1.196"
y <- as.numeric(unlist(strsplit(x, ":")))

Values of blat$LRwAvg all look like X above but this doesn't work

for (i in 1:50){
  y <- as.numeric(unlist(strsplit(blat$LRwAvg[i], "\\:")))
  blat$meanLRwAvg[i]=mean(y)
}

Because of:

Error in strsplit(blat$LRwAvg[i], "\:") : non-character argument

It doesn't matter if I have one, two or null backslashes.

What's my problem? (Not generally, I mean in this special task, technically)

As agstudy implied blat$LRwAvg <- as.character(blat$LRwAvg) before loop fixed it

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)
}