使用 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 使用 lapplygsub 的解决方案:

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))