如果我有一个简单的数据框,其中的样本和数字表示为这样的字符:

Sample     Vals
 A         1,2,3,4,5
 B         3,4,5,6,7
 C         6,7,8

这样我们就可以将字符串作为数字(或传递给函数)进行转换和操作,以获得类似于平均值(或其他)的东西。
Sample     Vals         Mean
 A         1,2,3,4,5    3
 B         3,4,5,6,7    5
 C         6,7,8        7

我面临的挑战是类型转换。例如,我可以将 vals 拆分为
df$Vals<-strsplit(df$Vals, ",")

但是即使尝试使用“as.numeric”等,将其转换为数字或整数也会变得有点棘手。似乎是一件非常简单的事情,但我试图找到合适的答案却无济于事。

最佳答案

使用 base R 我们可以用 strsplit 用逗号分割列,然后找到 mean 。读入数据时一定要设置stringsAsFactors=FALSE:

df$Mean <- sapply(strsplit(df$Vals, ","), function(x) mean(as.numeric(x)))
df
#  Sample      Vals Mean
#1      A 1,2,3,4,5    3
#2      B 3,4,5,6,7    5
#3      C     6,7,8    7

关于r - 对数据框中的数字字符串执行函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33855766/

10-11 15:38