在R中使用mutate重命名列中的项目

时间:2017-09-02 13:30:29

标签: r dplyr

修改

我正在尝试命名列并重命名数据集列中的所有项目:

dataSet <- read.csv(url) %>%

rename("newColumn1" = V1) %>%

mutate(newColumn1 = recode(newColumn1, "oldEntryX" = "newEntryX") %>%

select(dataSet, newColumn1) 

我收到了这个错误:

Error in recode(newColumn1, oldEntryX = "newEntryX" : 
object 'newColumn1' not found

我错过了什么?

代码通过重命名功能正确运行并正确显示重命名的列,但是当我包含mutate时,它会抛出错误。

我分享真实代码没有问题,但想把它推广给人群。

来源信息来自https://archive.ics.uci.edu/ml/machine-learning-databases/mushroom/agaricus-lepiota.data

2 个答案:

答案 0 :(得分:1)

mutate步骤中,您不需要lhs =上的列名称引用。此外,还有一些案例不匹配

假设数据集读取正确,我们可以

df1 %>% 
   rename(newColumn1 = V1, newColumn2 = V2)  %>%
   mutate(newColumn1 = recode(newColumn1, oldEntryX = "newEntryX"), 
           newColumn2 = recode(newColumn2, oldEntryY = "newEntryY"))

根据OP的代码,也没有结束引用"newColumn1

数据

set.seed(24)
df1 <- data.frame(V1 = sample(c("oldEntryX", "x", "y"), 10, replace = TRUE), 
 V2 =  sample(c("oldEntryY", "x", "y"), 10, replace = TRUE), stringsAsFactors= FALSE)

答案 1 :(得分:0)

你可以用一些简单的R编程代码来做到这一点: 如何阅读csv文件 语法: - `read.csv(&#34; filename.csv&#34;) 通过使用此命令,第一行将用作标题。要改善这个错误,应该写

data <- read.csv("datafile.csv", header=FALSE)

如何重命名标题/列名:

names(data) <- c("Column1", "Column2", "Column3")

现在您的标题已被Column1,Column2和Column3替换

现在要更改Column1数据,您可以按照步骤

data$Column1 <- c(write down set of values with which you want to replace)

查看输出类型

data