我有一列数据框,例如“ 0.496,0.424,0.141”。现在,我想将它们分别转换为数字并计算平均值。谁能告诉我该怎么做?预先谢谢你。
string1 <- "0.496,0.424,0.141"
#I have try
mean(as.numeric(string1))
#but it didnot work
答案 0 :(得分:7)
我们可以使用input: 0 ; isValid: true
input: 0.0 ; isValid: true
input: 0.1 ; isValid: true
input: -0.1 ; isValid: false
input: -0.123 ; isValid: false
input: -123.123 ; isValid: false
,然后使用read.csv
来获取每一行的均值。
rowMeans
rowMeans(read.csv(text = string1, header = FALSE))
#[1] 0.3536667
也一样
read.table
答案 1 :(得分:1)
比@RonakShah的解决方案稍微冗长一些,但对于初学者来说可能更容易理解:
mean(as.numeric(unlist(strsplit(string1, split = ","))))
[1] 0.3536667
strsplit()
-在每个逗号处将字符串分成一个列表,然后
unlist()
-将列表变成向量,然后
as.numeric()
-将向量的每个值转换为数字(= float)类型,然后
mean()
-计算所得向量的均值