r-避免在count()和aggregate()函数之后自动生成列名



我在R中遇到了一个特殊的问题。我需要避免在使用count((和aggregate((函数后自动生成列名。如果代码是在一台有其他基本语言的机器上运行的,R会分配一个不同的列名,因此我的代码会抛出一个错误。

我写的:

aggregated_data <- aggregate(data$diff, by = list(P_key = data$P_key), FUN=sum)
names(aggregated_data)[names(aggregated_data) == "x"] <- "d_sum"
count_data <- count(data, P_key)
names(count_data)[names(count_data) == "n"] <- "Obs"

变量";x〃;以及";n〃;如果计算机的语言不同,则会自动生成并更改。我需要一种可以直接分配";d_sum";以及";Obs";并避免这个问题。

数据(重命名前-用于聚合函数(:

P_key             x
1 115.770.11.5  21065
2 115.882.KJ.1 223451
3 115.883.KJ.1  47847
4 616.222.11.1 337464

数据(显式重命名"x"列后-用于聚合函数(:

P_key          d_sum
1 115.770.11.5      21065
2 115.882.KJ.1     223451
3 115.883.KJ.1      47847
4 616.222.11.1     337464

我需要避免自动生成的列名";x〃;,并将其分配为"0";d_sum";。因此,避免了代码第二行中的显式重命名。

任何帮助都将不胜感激。

关于骨料:

# your approach:
aggregate(iris$Sepal.Length, by=list(Species=iris$Species), FUN=sum)
#>      Species     x
#> 1     setosa 250.3
#> 2 versicolor 296.8
#> 3  virginica 329.4

# instead, do this:
aggregate(Sepal.Length ~ Species, data = iris, sum)
#>      Species Sepal.Length
#> 1     setosa        250.3
#> 2 versicolor        296.8
#> 3  virginica        329.4

由reprex包(v0.3.0(于2020-08-05创建

dplyr::count有一个可以使用的name参数。

您可以尝试以下操作:setNames(aggregated_data, c(names(aggregated_data)[1], "d_sum"))

Obs.也是如此

相关内容

最新更新