首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >转置R中的data.frame并将其中一列设置为新转置的表头的最佳方法是什么?

转置R中的data.frame并将其中一列设置为新转置的表头的最佳方法是什么?
EN

Stack Overflow用户
提问于 2011-07-11 11:37:54
回答 7查看 60.7K关注 0票数 23

转置R中的data.frame并将其中一列设置为新转置的表头的最佳方法是什么?我已经在下面编写了一种方法来实现这一点。因为我仍然是R的新手,所以我想要一些建议来改进我的代码,以及更像R的替代方案。不幸的是,我的解决方案也有点硬编码(即新的列标题位于某个位置)。

代码语言:javascript
运行
复制
# Assume a data.frame called fooData
# Assume the column is the first column before transposing

# Transpose table
fooData.T <- t(fooData)

# Set the column headings
colnames(fooData.T) <- test[1,]

# Get rid of the column heading row
fooData.T <- fooData.T[2:nrow(fooData.T), ]

#fooData.T now contains a transposed table with the first column as headings
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-07-11 11:51:37

好的,你可以用两个步骤来完成它,使用

代码语言:javascript
运行
复制
# Transpose table YOU WANT
fooData.T <- t(fooData[,2:ncol(fooData)])

# Set the column headings from the first column in the original table
colnames(fooData.T) <- fooData[,1] 

结果是一个你可能知道的矩阵,这是由于转置时的类问题。考虑到转置步骤中缺乏命名能力,我认为不会有一种简单的方法来实现这一点。

票数 26
EN

Stack Overflow用户

发布于 2021-01-07 22:55:52

以下是我对data.frame使用dplyr的两点建议,该and具有分组列和id列。

代码语言:javascript
运行
复制
id_transpose <- function(df, id){
  df %>% 
    ungroup() %>% 
    select(where(is.numeric)) %>% 
    t() %>% 
    as_tibble() %>% 
    setNames(., df %>% pull({{id}}))
}
票数 1
EN

Stack Overflow用户

发布于 2021-06-29 07:38:08

你甚至可以用一行代码来实现:

代码语言:javascript
运行
复制
fooData.T <- setNames(data.frame(t(fooData[,-1])), fooData[,1])

已经有很好的答案了。但是,对于那些更喜欢代码简洁的人来说,这个答案可能很有用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6645524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档