当我使用summarise_if函数并传递函数列表时,如何选择不同的下划线而不是下划线?我希望我的列名只包含句点而不是下划线,以便遵循Google样式指南R。
这就是我用来创建列的内容:
wthmon %<>% summarise_if(is.numeric, funs(min, max, mean, median), na.rm = TRUE)
我的专栏最终看起来像这样:
> names(wthmon)
[1] "exp" "stat.id" "year" "month"
[5] "temp_min" "dew_min" "humid_min"
"solar_min"
[9] "rain_min" "wind.spd_min" "wind.dir_min"
"wind.gust_min"
[13] "soil.temp_min" "soil.moist_min" "temp_max" "dew_max"
但我宁愿temp.min或soil.moist.min与我的风格保持一致。
答案 0 :(得分:0)
使用gsub
和iris %>%
summarise_if(is.numeric, funs(min, max, mean, median), na.rm = TRUE) %>%
rename_all(. %>% gsub("_", ".", .)) %>%
colnames()
:
[1] "Sepal.Length.min" "Sepal.Width.min" "Petal.Length.min" "Petal.Width.min"
[5] "Sepal.Length.max" "Sepal.Width.max" "Petal.Length.max" "Petal.Width.max"
[9] "Sepal.Length.mean" "Sepal.Width.mean" "Petal.Length.mean" "Petal.Width.mean"
[13] "Sepal.Length.median" "Sepal.Width.median" "Petal.Length.median" "Petal.Width.median"
输出:
{{1}}
答案 1 :(得分:0)
2020更新
在dplyr 1.0.0中使用summarise()和cross(),您现在可以指定.names参数
iris %>%
summarise(across(
where(is.numeric),
list(min = min, max = max, mean = mean, median = median),
na.rm = TRUE,
.names = "{.col}.{.fn}"
))