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)
Strsplit() Function SyntaxStrsplit(): An R Language function which is used to split the strings into substrings with split arguments. Where: X = input data file, vector or a stings. Split = Splits the strings into required formats.
R split string To split a string in R, use the strsplit() method. The strsplit() is a built-in R function that splits the string vector into sub-strings. The strsplit() method returns the list, where each list item resembles the item of input that has been split.
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) }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With