編輯:所以我用以下代碼準備了以下虛擬資料,
whatever <- data.frame(model=c("Nug", "Ste"), A=c(1,2), B=c(3,4), C=c(5,6))
...因此,螢屏截圖提供了以下資料框(CBB 以找出 StackOverflow 的語法以創建表格格式):

所以新的資料框將有 2x3 列和一行,例如Nug.A = 1 , Ste.A = 2**, Nug.B = 3 , Ste.B = 4 , Nug.C = 5最后Ste.C = 6
我確信這樣的資料操作函式已經存在,但我不知道呼叫這個轉換的名稱,所以我無法谷歌它。
編輯: @NelsonGon; 我顯然不是在問如何從寬到長,而是在問一個長(不是一列而是多列)到寬。
請在下次投票之前正確閱讀問題。
uj5u.com熱心網友回復:
- 帶入長格式,然后
unite名稱(這也可以通過pivot_widerwithnames_glue(我更喜歡前一個)pivot_wider
library(dplyr)
library(tidyr)
df %>%
pivot_longer(
-model
) %>%
unite(name, c("model", "name"), sep = ".") %>%
pivot_wider(
names_from = name,
values_from = value
)
輸出:
Nug.psill Nug.range Nug.kappa Nug.ang1 Nug.ang2 Nug.ang3 Nug.anis1 Nug.anis2 Ste.psill Ste.range Ste.kappa Ste.ang1 Ste.ang2 Ste.ang3 Ste.anis1 Ste.anis2
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 0.0416 0 0 0 0 0 1 1 0.251 694955. 5 0 0 0 1 1
>
資料:
df <- structure(list(model = c("Nug", "Ste"), psill = c(0.04157538,
0.25144774), range = c(0, 694955.1), kappa = c(0L, 5L), ang1 = c(0L,
0L), ang2 = c(0L, 0L), ang3 = c(0L, 0L), anis1 = c(1L, 1L), anis2 = c(1L,
1L)), class = "data.frame", row.names = c("1", "2"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/368697.html
標籤:r
下一篇:使用矩形勾勒地圖區域
