【发布时间】:2021-08-26 11:37:17
【问题描述】:
我是一名初学者,我正在尝试找到最有效的方法来更改我将要创建的许多 CSV 文件的第一列的名称。创建 CSV 文件后,我将它们加载到 R 中,如下所示:
data <- read.csv('filename.csv')
我已经使用names()函数对单个文件进行了改名:
names(data)[1] <- 'Y'
但是,我想找到将此名称更改组合/管道传输到 read.csv 的最有效方法,以便在打开每个文件时将相同的名称更改应用于每个文件。我尝试编写一个“简单”函数来执行此操作:
addName <- function(data) {
names(data)[1] <- 'Y'
data
}
但是,我还没有完全理解编写函数的语法,我无法让它工作。
【问题讨论】:
-
尝试使用
colnames函数,见stackoverflow.com/questions/7531868/… -
或
rename函数,见stackoverflow.com/questions/35023375/… -
您是否设计了您的
addName函数,期望 R 通过引用传递?也就是说,您是否希望您的函数变异 现有对象x,在addName(x)中作为data参数的参数提供。如果是这样,这将不起作用:R 通过值传递 而不是通过引用。 但是,data <- addName(data)行应该可以工作,data <- data %>% addName()和magrittr包也应该可以工作。您可以将sapply这个addName函数添加到data.frames 的列表中,就像您的data对象一样,然后存储sapply将返回的列表。
标签: r function csv columnname