如果我有一个简单的数据框,其中的样本和数字表示为这样的字符:
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/