繁体   English   中英

将具有两个输入的功能应用于数据帧中的数据组

[英]Applying function with two inputs to groups of data in dataframe

我创建了一个函数(Pearson),该函数调用两个向量(vlow和vhigh),并希望将该函数应用于我的数据帧(ldf)中的数据组(dist)。 我尝试使用以下代码:

ldf %>% group_by(dist) %>% summarize(pearson(vlow,vhigh))

这是输出:

pearson(vlow, vhigh)
    1            0.5686079

对于5个组,我应该得到5个结果,但是由于某种原因,它不能正确识别组。 数据框的结构如下所示。 关于如何解决此问题的任何建议?

'data.frame':   157 obs. of  5 variables:
 $ dlow : num  24 33 45 123 30 33 126 84 87 81 ...
 $ dhigh: num  27 36 48 126 33 36 129 87 90 84 ...
 $ vlow : num  251 249 251 254 251 ...
 $ vhigh: num  248 250 251 254 250 ...
 $ dist : chr  "3" "3" "3" "3" ...

最好,托马斯

找到了我自己问题的答案。 如果有人好奇,可以使用以下代码进行工作:

# Split data by lag
sp <- split(ldf, ldf$dist)

# Calculate Pearson Correlation (p)
p <- lapply(names(sp), function(x) pearson(sp[[x]][["vlow"]],sp[[x]][["vhigh"]]))
p <- unlist(p)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM