r - 在 R 中,如何更改行和列的位置?

标签 r dplyr tidyr

我有这个原始数据集,下面是示例数据集:

 X1         X2
 1      Born 1946-05-27
 2  bioguide    A000370
 3      Born 1979-06-19
 4  bioguide    A000371
 5      Born 1980-04-18
 6  bioguide    A000367
 7      Born 1958-06-12
 8  bioguide    A000369
 9      Born 1948-03-23
 10 bioguide    B001291

使用这个,我想要的输出如下:
       Born        biouguide
1     1946-05-27     A000370
2     1979-06-19     A000371
3     1980-04-18     A000367
4     1958-06-12     A000369
5     1980-04-18     A000367

此外,以下是原始数据集的 dput:
structure(list(X1 = c("Born", "bioguide", "Born", "bioguide", 
"Born", "bioguide", "Born", "bioguide", "Born", "bioguide"), 
    X2 = c("1946-05-27", "A000370", "1979-06-19", "A000371", 
    "1980-04-18", "A000367", "1958-06-12", "A000369", "1948-03-23", 
    "B001291")), row.names = c(NA, 10L), class = "data.frame")

你能帮我做出想要的输出吗?

最佳答案

我们可以使用 pivot_wider

library(dplyr)
library(tidyr)
df1 %>%
  group_by(X1) %>%
  mutate(rn = row_number()) %>%
  pivot_wider(names_from = X1, values_from = X2) %>%
  select(-rn)
# A tibble: 5 x 2
#  Born       bioguide
#  <chr>      <chr>   
#1 1946-05-27 A000370 
#2 1979-06-19 A000371 
#3 1980-04-18 A000367 
#4 1958-06-12 A000369 
#5 1948-03-23 B001291 

或在 base R
unstack(df1, X2 ~ X1)

关于r - 在 R 中,如何更改行和列的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59672216/

相关文章:

r - 如何使用 dplyr 获取 NSE 中的变量名称

r - 仅为特定值创建序列

r - 将长格式分组数据转换为宽格式

R (dplyr) : count number of "0" observations before "1" in a column by ID

r - 如何正确地从外部列表循环以在 dplyr 中使用内部 mutate

r - 为矩阵模拟 reshape2::melt 与 pivot_longer

r - 使用 tidyr 收集多个列

r - 带有填充点符号和图例的绘图函数

r - (R,量化): Hypothesis testing a large range of quantiles

r - 当 geom_line() 和 geom_segment() 一起使用时,看似不正确的引导颜色