如何将“0.496,0.424,0.141”之类的字符串转换为数字?

How to convert a string like "0.496,0.424,0.141" to numeric?

我有一列数据框,类似于“0.496,0.424,0.141”。现在我想将它们中的每一个转换为数字并计算平均值。谁能告诉我我该怎么做?提前谢谢你。

string1 <- "0.496,0.424,0.141"
#I have try 
mean(as.numeric(string1))
#but it didnot work

我们可以使用 read.csv 然后使用 rowMeans 来获取每一行的平均值。

rowMeans(read.csv(text = string1, header = FALSE))
#[1] 0.3536667

同样适用于 read.table

rowMeans(read.table(text = string1, sep = ","))

比@RonakShah 的解决方案稍微冗长一些,但对于初学者来说可能更容易理解:

mean(as.numeric(unlist(strsplit(string1, split = ","))))
[1] 0.3536667

说明

strsplit() - 在每个逗号处将字符串拆分为一个列表,然后
unlist() - 将列表转为向量,然后
as.numeric() - 将向量的每个值转换成数字(= float)类型,然后
mean() - 计算结果向量的平均值