使用 R 更改 excel 工作表中的变量名称
Change variables' names in excel sheets using R
我想使用 R 更改 excel sheet 中的变量名称。例如,在随附的屏幕截图中,我想将“pata”替换为 /t/,“ pada”用/d/,“paca”用/c/。我使用 R 的 sub 和 gsub 函数在我的 csv 文件中进行更改,但我更愿意替换我的 df 中的所有名称,然后将 df 导出为 csv 文件。
df<- read_csv("change_variables_names.csv")
sub('pata','/t/', df$Word)
gsub('pata','/t/', df$Word)
这是 dplyr
的解决方案:
library(dplyr)
library(openxlsx)
data %>%
mutate(Word = case_when(Word == "pata" ~ "/t/",
Word == "pada" ~ "/d/",
Word == "paca" ~ "/c/")) %>%
write.csv(., "new_variable_names.csv")
这是 base R
使用 lapply
和 gsub
的解决方案:
data <- data.frame(lapply(data, function(x) gsub("pata", "/t/", x)))
data <- data.frame(lapply(data, function(x) gsub("pada", "/d/", x)))
data <- data.frame(lapply(data, function(x) gsub("paca", "/c/", x)))
write.csv(data, "new_variables.csv")
两种方式都给我们:
Word Repetition Value
1 /t/ 1 233
2 /t/ 2 433
3 /t/ 3 552
4 /d/ 1 234
5 /d/ 2 567
6 /d/ 3 436
7 /c/ 1 765
8 /c/ 2 231
9 /c/ 3 567
数据:
structure(list(Word = c("pata", "pata", "pata", "pada", "pada",
"pada", "paca", "paca", "paca"), Repetition = c(1, 2, 3, 1, 2,
3, 1, 2, 3), Value = c(233, 433, 552, 234, 567, 436, 765, 231,
567)), class = "data.frame", row.names = c(NA, -9L))
我想使用 R 更改 excel sheet 中的变量名称。例如,在随附的屏幕截图中,我想将“pata”替换为 /t/,“ pada”用/d/,“paca”用/c/。我使用 R 的 sub 和 gsub 函数在我的 csv 文件中进行更改,但我更愿意替换我的 df 中的所有名称,然后将 df 导出为 csv 文件。
df<- read_csv("change_variables_names.csv")
sub('pata','/t/', df$Word)
gsub('pata','/t/', df$Word)
这是 dplyr
的解决方案:
library(dplyr)
library(openxlsx)
data %>%
mutate(Word = case_when(Word == "pata" ~ "/t/",
Word == "pada" ~ "/d/",
Word == "paca" ~ "/c/")) %>%
write.csv(., "new_variable_names.csv")
这是 base R
使用 lapply
和 gsub
的解决方案:
data <- data.frame(lapply(data, function(x) gsub("pata", "/t/", x)))
data <- data.frame(lapply(data, function(x) gsub("pada", "/d/", x)))
data <- data.frame(lapply(data, function(x) gsub("paca", "/c/", x)))
write.csv(data, "new_variables.csv")
两种方式都给我们:
Word Repetition Value
1 /t/ 1 233
2 /t/ 2 433
3 /t/ 3 552
4 /d/ 1 234
5 /d/ 2 567
6 /d/ 3 436
7 /c/ 1 765
8 /c/ 2 231
9 /c/ 3 567
数据:
structure(list(Word = c("pata", "pata", "pata", "pada", "pada",
"pada", "paca", "paca", "paca"), Repetition = c(1, 2, 3, 1, 2,
3, 1, 2, 3), Value = c(233, 433, 552, 234, 567, 436, 765, 231,
567)), class = "data.frame", row.names = c(NA, -9L))