我有一个包含 28 个数据帧的列表,从第 1 列到第 3 列的每个数据帧都有非数值,我想使用 sapply 从第 4 列到第 22 列求和。但是我做不到所以...有一种方法可以忽略具有非数字值或其他可以提供我想要的功能的列吗?
data = data.frame(x1 = letters[2:6],
x2 = 'X',
x3 = 5:9)
data2 = data.frame(x4 = letters[7:11],
x5 = 'Y',
x3 = 10:14)
teste_lista=list(data,data2)
sapply(teste_lista,sum)
return
'only defined on a data frame with all numeric-alike variables'
就像
sum(iris)
没有意义(因为那个里面有factor
),它在这里不起作用。也许是这样的:
data = data.frame(x1 = letters[2:6],
x2 = 'X',
x3 = 5:9)
data2 = data.frame(x4 = letters[7:11],
x5 = 'Y',
x3 = 10:14)
sapply(teste_lista, function(z) sum(z[sapply(z, is.numeric)]))
# [1] 35 60