簡體   English   中英

將列轉置為行 R dataframe

[英]Transpose columns to rows in R dataframe

轉換 R 中的數據幀對我來說一直是個挑戰。 如何將我的 dataframe 更改為:

df <- data.frame(level1 = c("A", "B","C"), cheese1.kg = c("58","63","33"), cheese2.kg = c("11","22","20"), column.other = c("yes","yes","yes"))

到:

desired.output <- data.frame(level1 = c("A","A","B","B","C","C"), 
                             product = c("cheese1","cheese2","cheese1","cheese2","cheese1","cheese2"), 
                             kg = c("58","11","63","22","33","20"), 
                             column.other= c("yes","yes","yes","yes","yes","yes"))

我們可以使用pivot_longer

library(tidyr)
pivot_longer(df, cols = starts_with('cheese'), 
   names_to = c("product", ".value"), names_sep = "\\.", 
     values_transform = list(kg = as.integer))

-輸出

# A tibble: 6 × 4
  level1 column.other product    kg
  <chr>  <chr>        <chr>   <int>
1 A      yes          cheese1    58
2 A      yes          cheese2    11
3 B      yes          cheese1    63
4 B      yes          cheese2    22
5 C      yes          cheese1    33
6 C      yes          cheese2    20

暫無
暫無

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

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