簡體   English   中英

如何在 R 中部分轉置 dataframe? (特定列到行)

[英]How to partially transpose a dataframe in R? (specific column to row)

我想將特定列更改為每個單元格的值基於另一列的行。

我的 dataframe 如下所示:

種族 State 地區 十等分 頻率
非洲人 一個 一個 1 3
白種人 一個 一個 1 7
亞洲人 一個 一個 1 9
混血兒 一個 一個 1 5
非洲人 b 1 12
白種人 b 1 2
亞洲人 b 1 8
混血兒 b 1 5

我想將 Race 列更改為一行(其中 Freq 確定每個單元格的值),所以我得到以下 output:

State 地區 十等分 非洲人 白種人 亞洲人 混血兒
一個 一個 1 3 7 9 5
b 1 12 2 8 5

這里的最終目標是計算每個種族的相對頻率 State、區域和十分位,但這是另一天

使用tidyr::pivot_wider

library(tidyr)

data %>% pivot_wider(names_from = 'Race', values_from = Freq)
# A tibble: 2 x 7
  State Region Decile African Caucasian Asian Mulatto
  <chr> <chr>   <int>   <int>     <int> <int>   <int>
1 a     A           1       3         7     9       5
2 b     B           1      12         2     8       5

數據:

data <- read.table(text=
'Race   State   Region  Decile  Freq
African     a   A   1   3
Caucasian   a   A   1   7
Asian   a   A   1   9
Mulatto     a   A   1   5
African     b   B   1   12
Caucasian   b   B   1   2
Asian   b   B   1   8
Mulatto     b   B   1   5', header=T)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM