% left_join(., prod_0106, b-6ren">
gpt4 book ai didi

r - dplyr 在管道函数中改变 colnames

转载 作者:行者123 更新时间:2023-12-05 08:41:04 25 4
gpt4 key购买 nike

我有以下代码:

library(dplyr)

df <- data %>%
left_join(., panel_info, by = "PANID") %>%
left_join(., prod_0106, by = "UPC") %>%
left_join(., prod_0106sz, by = "UPC") %>%
left_join(., trips, by = "PANID") %>%
mutate(colnames(.) = gsub(" ", "", colnames(.)))

除最后一行外,一切正常。 df 数据框之前尚未创建。因此,我尝试使用管道函数将所有数据连接在一起,并最终删除连接在一起的数据的列名中的所有空格。

但是,出现如下错误;

Error in mutate_impl(.data, dots) : 
Column `gsub(" ", "", colnames(.))` must be length 20056 (the number of rows) or one, not 106

我认为这是由于代码的 mutate() 部分中的 (.) 造成的。只是想看看我哪里出错了。

最佳答案

你也可以设置colnames在 dplyr 管道中通过管道进入 `colnames<-()`这是您执行 colnames(df) <- c('a', 'b', 'c') 时调用的函数的通用形式:

iris %>%
`colnames<-`(gsub('Length', 'LENGTH', names(.))) %>%
head

Sepal.LENGTH Sepal.Width Petal.LENGTH Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa

关于r - dplyr 在管道函数中改变 colnames,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52649234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com