r - 如何动态重命名数据帧的行?

标签 r dataframe

我喜欢用 setNames 即时重命名矢量(即时我的意思是一个返回对象的函数):

my_vector <- c(1,2,3)
setNames(my_vector, c("a","b","c"))
# a b c
# 1 2 3

这也适用于数据框列名
my_df <- data.frame(matrix(1:9, nrow=3))
setNames(my_df, c("a","b","c"))
  a b c
1 1 4 7
2 2 5 8
3 3 6 9

有没有办法对行名做同样的事情?我认为这会起作用,但它不起作用:
t(setNames(t(my_df), c("a","b","c")))

最佳答案

我认为您所说的即时是您希望函数返回修改后的对象。自 rownames<-不为你做,你必须定义你自己的函数:

setRowNames <- function(df, row.names) {
   rownames(df) <- row.names
   df
}

您可以将该函数定义放在脚本的顶部,或者甚至将其隐藏在您的 Rprofile 中。或 Rprofile.site (如果您不熟悉,请参阅 ?Startup)。然后在你的代码中,使用 setRowNames(my_df, c("a", "b", "c")) .它简洁,灵活,读起来很好。
t(setNames(t(my_df), c("a","b","c")))不起作用,因为转置 data.frame 会为您提供一个没有名称但只有行名和列名的矩阵。

关于r - 如何动态重命名数据帧的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19543369/

相关文章:

r - 在 RSelenium 中打开一个新选项卡

r - 使用 geom_bar 更改填充的图例形状大小

r - R中的Shapefile到光栅转换?

R 脚本在没有性能提升的情况下运行在外部集群上

python - Pandas Dataframe 特殊计数

python - 动态评估 Pandas 公式中的表达式?

r - 如何使用 R 删除列中的按范围条件

r - 将 header 设置为 R markdown 中的变量值

将数据框中的行替换为 0,前一行值不等于 0

r - 为什么 data.table 上的 class(.SD) 显示 "data.frame"?