我想对数据框中的所有列应用函数,并使用数据框中的另一列作为输入。例如,假设我想将每一列与给定列x
的协方差。我可以使用summarise_all吗?
df <- data.frame( x=1:100, y=100:1, z=1)
df %>% summarise( cov.x=cov(x,x), cov.y=cov(y,x), cov.z=cov(z,x) )
# I want to do this ...
df %>% summarise_all( function(vv) cov(vv,x) )
# ... using a syntax like this ...
后面的这些版本给我一个错误,说:
>> Error in summarise_impl(.data, dots) :
>> Evaluation error: object 'x' not found.
同样,这是
df %>% summarise_all( cov(.,x) )
导致此错误:
>> Error in is.data.frame(y) : object 'x' not found
非常感谢
答案 0 :(得分:2)
df %>% summarise_all( function(vv) cov(vv,.$x) )