[英]Error in trying to use the group_by and summarise functions with dplyr in R
我一直在尝试使用dplyr
中的 dplyr 来总结一组数据。 这是我一直在使用的代码,直到最近它一直运行良好。
library(tidverse);library(curl)
data<-read.csv(curl("https://raw.githubusercontent.com/megaraptor1/mydata/main/data.csv"))
data2<-data %>%
group_by(e.taxon) %>%
summarise(across(c(e.hbl,e.bm), weighted.mean, e.N),
N = sum(e.N))
“错误: summarise()
输入..1
的问题。x 'x' 和 'w' 必须具有相同的长度 i 输入..1
是(function (.cols = everything(), .fns = NULL, ..., .names = NULL)...
i 组 2 中发生错误:e.taxon = "Abrocoma_bennettii"。"
现在我知道了此错误的所谓原因:其中两列的长度不同或缺少值。 但是,当我检查哪些列产生错误时,它表示所有变量都具有相同数量的条目(即,没有丢失数据)。
length(data$e.taxon)
length(data$e.hbl)
length(data$e.bm)
length(data$e.N)
我尝试搜索此错误消息以查看其背后是否有更多我可以使用的信息,但我找不到任何东西。 真正奇怪的是,这段代码在一些未知的更改之前运行良好,并且由于文件的设置方式,我无法轻松识别可能产生这种情况的新更改的位置(该示例是更大共享数据集的一部分)。 我试图弄清楚为什么 R 在所有数据都有完整案例时返回此错误。
它适用于新版本的dplyr
( 1.0.6
在R 4.1.0
上测试)
library(dplyr)
data %>%
group_by(e.taxon) %>%
summarise(across(c(e.hbl,e.bm), weighted.mean, e.N), N = sum(e.N))
# A tibble: 2,004 x 4
e.taxon e.hbl e.bm N
<chr> <dbl> <dbl> <int>
1 Abrawayomys_ruschii 126. 54.7 3
2 Abrocoma_bennettii 190. 200 9
3 Abrocoma_cinerea 149. 86.3 5
4 Abrothrix_andinus 83.7 16.7 34
5 Abrothrix_illuteus 121. 42 11
6 Abrothrix_longipilis 105. 32.3 62
7 Abrothrix_olivaceus 87.0 19.4 45
8 Acinonyx_jubatus 1278. 52163. 7
9 Acomys_cahirinus 105 41.1 2
10 Acomys_sp. 98.5 67 2
# … with 1,994 more rows
由于我们传递的是 arguments 而不是 lambda function,因此使用名称可能会更好,即w
w = eN
(尽管在这里作为第二个参数并不重要)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.