如何在 R 中的同一数据集下使用 rename() 和 rename_with()?
How to use rename() and rename_with() under the same dataset in R?
A data.frame: 6 × 3
Id ActivityDay Calories
<dbl> <chr> <int>
1 1503960366 4/12/2016 1985
2 1503960366 4/13/2016 1797
3 1503960366 4/14/2016 1776
4 1503960366 4/15/2016 1745
5 1503960366 4/16/2016 1863
6 1503960366 4/17/2016 1728
以上是数据集的 head()
预览,我试图在转换时将列名 ActivityDay 转换为 ActivityDate所有的列名都变成小写,下面是我的代码:
# calories
calories %>%
rename_with(calories, tolower) %>%
rename(activitydate=activityday)
Error: Can't rename columns that don't exist.
✖ Column `ActivityDay` doesn't exist.
请大家帮忙指出代码哪里不对,谢谢!
您不需要两次调用 calories
(您的数据框名称):
calories %>%
rename_with(tolower) %>%
rename(activitydate = activityday)
数据
calories <- structure(list(Id = c(1503960366L, 1503960366L, 1503960366L,
1503960366L, 1503960366L, 1503960366L), ActivityDay = c("4/12/2016",
"4/13/2016", "4/14/2016", "4/15/2016", "4/16/2016", "4/17/2016"
), Calories = c(1985L, 1797L, 1776L, 1745L, 1863L, 1728L)), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))
这是另一种方法:
library(dplyr)
library(stringr)
calories %>%
rename_with(., ~tolower(str_replace(., "activityday", "activitydate"))))
id activitydate calories
1 1503960366 4/12/2016 1985
2 1503960366 4/13/2016 1797
3 1503960366 4/14/2016 1776
4 1503960366 4/15/2016 1745
5 1503960366 4/16/2016 1863
6 1503960366 4/17/2016 1728
A data.frame: 6 × 3
Id ActivityDay Calories
<dbl> <chr> <int>
1 1503960366 4/12/2016 1985
2 1503960366 4/13/2016 1797
3 1503960366 4/14/2016 1776
4 1503960366 4/15/2016 1745
5 1503960366 4/16/2016 1863
6 1503960366 4/17/2016 1728
以上是数据集的 head()
预览,我试图在转换时将列名 ActivityDay 转换为 ActivityDate所有的列名都变成小写,下面是我的代码:
# calories
calories %>%
rename_with(calories, tolower) %>%
rename(activitydate=activityday)
Error: Can't rename columns that don't exist.
✖ Column `ActivityDay` doesn't exist.
请大家帮忙指出代码哪里不对,谢谢!
您不需要两次调用 calories
(您的数据框名称):
calories %>%
rename_with(tolower) %>%
rename(activitydate = activityday)
数据
calories <- structure(list(Id = c(1503960366L, 1503960366L, 1503960366L,
1503960366L, 1503960366L, 1503960366L), ActivityDay = c("4/12/2016",
"4/13/2016", "4/14/2016", "4/15/2016", "4/16/2016", "4/17/2016"
), Calories = c(1985L, 1797L, 1776L, 1745L, 1863L, 1728L)), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))
这是另一种方法:
library(dplyr)
library(stringr)
calories %>%
rename_with(., ~tolower(str_replace(., "activityday", "activitydate"))))
id activitydate calories
1 1503960366 4/12/2016 1985
2 1503960366 4/13/2016 1797
3 1503960366 4/14/2016 1776
4 1503960366 4/15/2016 1745
5 1503960366 4/16/2016 1863
6 1503960366 4/17/2016 1728