我是一个初学者,我试图找到最有效的方法来更改我将要创建的许多CSV文件的第一列的名称。一旦我创建了CSV文件,我将它们加载到R中,如下所示:
data <- read.csv('filename.csv')
我已经使用names()
函数对单个文件进行了名称更改:
names(data)[1] <- 'Y'
然而,我想找到最有效的方法来组合/管道这个名称更改以读取.csv,以便在打开每个文件时将相同的名称更改应用于每个文件。我尝试编写一个“简单”函数来做到这一点:
addName <- function(data) {
names(data)[1] <- 'Y'
data
}
然而,我还没有完全理解写函数的语法,我不能让它工作。
2条答案
按热度按时间nimxete21#
注解
如果您希望原始的
addName
函数像这样“改变”现有对象,请注意,R是通过值而不是通过引用传递的,所以
x
本身将保持不变:任何“变化”都可以通过用函数的返回值覆盖
x
来实现在这种情况下,
x
本身 * 将 * 明显改变:答案
无论如何,这里有一个解决方案,它紧凑地结合了管道(来自
magrittr
包的%>%
)和自定义函数。请注意如果没有换行符和注解,我为了清楚起见添加了它们,这可以压缩为只有几行代码。事实上,您可以轻松地对任何所需的列执行
rename
操作,这一切都是一蹴而就的:sulc1iza2#
这将读取一个文件名向量,将每个文件的第一列的名称更改为“Y”,并将所有文件存储在列表中。