【问题标题】:How can I use tribble to transpose a numeric tibble?如何使用 tribble 转置数字 tibble?
【发布时间】:2017-06-02 19:59:37
【问题描述】:

我尝试遵循tidyverse 方法,并将数值数据提取为小标题。作为一个矩阵,我只是转置数据。 tibble 中似乎有函数 tribble 用于此,但我无法使其工作。

如何在调用中设置列名?我在帮助中看不到。

library(tidyverse)
iris = as_data_frame(iris)
iris = select(iris,-Species)

tribble(iris)

给出错误

错误:在 'tribble()' 调用中未检测到列名

PS:我认为应该有比this更简单的方法。

【问题讨论】:

  • 从帮助文件?tribble中的例子来看,我认为这个函数与转置tibble对象(或任何其他类型的现有对象)没有任何关系。
  • @nrussell here 他们说 tribble 代表 transpose tibble ...我想这就是为什么 tibble transpose 有一个“r” .. tribble ...
  • @nrussell 还有其他想法如何在不先将其设为矩阵的情况下转置数字小标题吗?
  • 无论名称的来源如何,如果该函数打算用作transposed_tibble_object <- tribble(tibble_object),我很确定帮助文件中至少会有一个示例。至于您的问题,致电t(tibble_object) 将派遣t.data.frame。这不会产生您正在寻找的输出吗?
  • 也许只是将t.tbl_df <- function(x) { as_data_frame(t.data.frame(x)) } 定义为一种变通方法。

标签: r tidyverse


【解决方案1】:

tribble 用于创建tibble,但按行(因此,tribble)而不是按列输入信息。 这两个是相同的:

a <- tribble(
  ~colA, ~colB, 
  "a",   1,
  "b",   2, 
  "c",   3
)

b <- tibble(colA = c("a", "b", "c"), colB = c(1:3))

is.tibble(a)is.tibble(b) 都产生 TRUE

按照 nrussell 在 cmets 中的建议,您可以使用 t() 转置您的小标题

library(tidyverse)    
iris_t <- iris %>% t %>% as_tibble

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 2017-08-05
    • 2023-01-24
    • 2020-09-07
    • 2021-05-04
    • 1970-01-01
    • 2022-12-15
    相关资源
    最近更新 更多