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

时间:2019-04-23 09:12:18

标签: r 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

2 个答案:

答案 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()-计算所得向量的均值