我创建了一个函数(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" ...
最好, 托马斯
答案 0 :(得分:0)
找到了我自己问题的答案。如果有人好奇,这是使它起作用的代码:
# 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)