【发布时间】:2014-12-17 18:46:31
【问题描述】:
我想创建一个带有 for 循环的用户定义函数,该循环将在每个列名中添加列号,以使我的数据框更加清晰。
这是代码(但不起作用):
addncol = function(df)
{
for(i in 1:ncol(df))
{
names(df)[[i]] <- paste(names(df)[[i]], i, sep = '_')
}
}
单独的 for 循环运行良好,但在函数中它不起作用(虽然我没有错误消息)。
【问题讨论】:
-
names(df) 不是一个列表,而是一个向量。以这种方式使用它会更典型:........
names(df)[i] <- ...。但这不是根本错误,那么您还需要将其返回并将其分配回原始df,因为您刚刚所做的只是在函数内部发生。或者你可以使用<<- -
谢谢斯文。有什么方法可以在函数内部自动将其分配回 df ?而不是在函数外输入:
df <- addncol(df),我只想输入:addncol(df)并且我的新df被修改了,控制台中没有显示 -
不确定 Sven 是谁,但我已经提到了
<<-。行家认为这是作弊。
标签: r for-loop user-defined-functions