重命名data.frame列

时间:2019-05-05 05:29:00

标签: r dataframe names

我遇到了一种重命名data.frame列名称的解决方案:

function base64EncodeWebSafe(input) { try { // Try and fetch the specified url. return Utilities.base64EncodeWebSafe(input); } catch (e) { Utilities.sleep(1000); return Utilities.base64EncodeWebSafe(input); } }

这里是一个例子:

names(data) <- c("new_name", "another_new_name")

现在,我想知道如何将向量分配给函数调用。 empl <- c("Mike", "Steven") wa <- c(25000, 30000) data <- data.frame(empl, wa) data # now rename the columns of the dataframe names(data) <- c("employee", "wage") data 的结果是一个带有字符的向量。而且似乎此向量未以任何方式链接到data.frame。

有人能启发我说什么是机制吗?

试图向自己解释

names(data)

看上面的作业:

  • 左侧names(data) <- c("employee", "wage")返回带有旧列名的向量。
  • 此分配不分配给矢量吗?而不是数据框的属性?

1 个答案:

答案 0 :(得分:2)

我认为很好的问题。 这是R解释器的工作方式,它调用Replacement functions。您可以定义函数function<-来设置替换功能。

让我具有此功能:

members_of <- function(x){
  print(x)
}

我可以轻松地称呼它

members = c("foo", "bar", "baz")
members_of(members)
# output
# [1] "foo" "bar" "baz"

但是让我们使用后退标记字符和 tmp value 参数定义members_of<-函数:

`members_of<-` = function(tmp, value){
     tmp = value
 }

现在我可以分配给函数调用:

members = c("foo", "bar", "baz")
# output 
# [1] "foo" "bar" "baz"
#
members_of(members) = c("foo2", "bar2", "baz2")
# Now values of members will be
# members
# [1] "foo2" "bar2" "baz2"