我想重新排序 r 中的一些表。
我從 lmer() 和 confint() 函式中提取了所有值。也許還有另一種方法可以直接總結 lmer()-results?(各種 lmer 函式)
例如,我的表格如下所示:
| 一種 | loc_map_column | loc_stim_column | 對數速度 | 信心降低 | 信心上層 | p_value |
|---|---|---|---|---|---|---|
| 1 | 類風濕關節炎 | NSR | -0.502600888 | -0.8253034 | -0.17987440 | 4.045130e-02 |
| 2 | 類風濕關節炎 | loc_stimLA | -0.034630279 | -0.4379126 | 0.36848580 | 2.084996e-29 |
| 3 | 類風濕關節炎 | loc_stimRA | -0.691259575 | -1.0801617 | -0.30230958 | 2.582846e-08 |
| 4 | 低壓 | NSR | -0.182731047 | -0.8182401 | 0.46092692 | 5.829759e-01 |
| 5 | 低壓 | loc_stimLV | -0.236928272 | -1.0013429 | 0.53562934 | 4.102663e-01 |
| 6 | 低壓 | loc_stimRA | -0.913238563 | -1.6754108 | -0.13692249 | 2.867447e-27 |
| 7 | 低壓 | loc_stimRV | -0.042520352 | -0.8544059 | 0.77911468 | 1.212858e-01 |
| 8 | 洛杉磯 | NSR | 0.007310606 | -0.3134600 | 0.32826335 | 9.650069e-01 |
| 9 | 洛杉磯 | loc_stimRA | -0.340983839 | -0.7728683 | 0.09108281 | 1.413686e-09 |
| 10 | 房車 | NSR | -0.351529452 | -0.8852501 | 0.18298935 | 2.710587e-01 |
| 11 | 房車 | loc_stimLA | -0.622877246 | -1.3220944 | 0.07870576 | 1.422310e-03 |
| 12 | 房車 | loc_stimLV | -0.175692036 | -0.8070004 | 0.45670750 | 4.382634e-04 |
| 13 | 房車 | loc_stimRA | -0.535687639 | -1.1715584 | 0.10106017 | 4.286051e-04 |
我需要的是這種風格的表格:
| loc_stim_column | 類風濕關節炎 | 洛杉磯 | 房車 | 低壓 | |
|---|---|---|---|---|---|
| NSR | 對數速度 | -0.502600888 | ... | ... | ... |
| conficence_upper | -0.17987440 | ... | ... | ... | |
| 信心降低 | -0.8253034 | ... | ... | ... | |
| p_value | 4.045130e-02 | ... | ... | ... | |
| loc_stimRA | 對數速度 | -0.691259575 | ... | ... | ... |
| conficence_upper | -0.30230958 | ... | ... | ... | |
| 信心降低 | -1.0801617 | ... | ... | ... | |
| p_value | 2.582846e-08 | ... | ... | ... | |
| loc_stimLA | 對數速度 | -0.691259575 | ... | ... | ... |
| conficence_upper | 0.36848580 | ... | ... | ... | |
| 信心降低 | -0.4379126 | ... | ... | ... | |
| p_value | 2.084996e-29 | ... | ... | ... | |
| loc_stimRV | 對數速度 | 不適用 | ... | ... | ... |
| conficence_upper | 不適用 | ... | ... | ... | |
| 信心降低 | 不適用 | ... | ... | ... | |
| p_value | 不適用 | ... | ... | ... | |
| loc_stimLV | 對數速度 | 不適用 | ... | ... | ... |
| conficence_upper | 不適用 | ... | ... | ... | |
| 信心降低 | 不適用 | ... | ... | ... | |
| p_value | 不適用 | ... | ... | ... |
我怎樣才能做到這一點?
這是一個資料框嘗試的代碼:
loc_map_column <- c("RA","RA","RA","LV","LV","LV","LV","LA","LA","RV","RV","RV","RV")
loc_stim_column <- c("NSR","loc_stimLA","loc_stimRA","NSR","loc_stimLV","loc_stimRA","loc_stimRV","NSR","loc_stimRA","NSR","loc_stimLA","loc_stimLV","loc_stimRA")
logVelocity <- c(-0.502600888,-0.034630279,-0.691259575,-0.182731047,-0.236928272, -0.913238563,-0.042520352,0.007310606,-0.340983839,-0.351529452,-0.622877246,-0.175692036,-0.535687639)
confidence_lower <- c(0.2, 0.3, 0.1, 0.4, 0.22, 0.11, 0.33, 0.44, 0.63, 0.133, 0.311, 0.01, 0.001)
confidence_upper <- c(0.2, 0.3, 0.1, 0.4, 0.22, 0.11, 0.33, 0.44, 0.63, 0.133, 0.311, 0.01, 0.001)
p_value <- c(0.2, 0.3, 0.1, 0.4, 0.22, 0.11, 0.33, 0.44, 0.63, 0.133, 0.311, 0.01, 0.001)
summarydf <- data.frame(loc_map_column, loc_stim_column, logVelocity, confidence_lower, confidence_upper, p_value)
uj5u.com熱心網友回復:
tidyr根據您提供的資料,我們可以通過庫分兩步完成此操作。
library(tidyr)
第一步是使資料更長,我們使用函式來做到這一點pivot_longer,選擇將所有數值列放入一個具有函式的列中where:
longer <- pivot_longer(summarydf, cols = where(is.numeric), names_to = 'measure')
longer
這給了我們:
# A tibble: 52 x 4
loc_map_column loc_stim_column measure value
<chr> <chr> <chr> <dbl>
1 RA NSR logVelocity -0.503
2 RA NSR confidence_lower 0.2
3 RA NSR confidence_upper 0.2
4 RA NSR p_value 0.2
5 RA loc_stimLA logVelocity -0.0346
6 RA loc_stimLA confidence_lower 0.3
7 RA loc_stimLA confidence_upper 0.3
8 RA loc_stimLA p_value 0.3
9 RA loc_stimRA logVelocity -0.691
10 RA loc_stimRA confidence_lower 0.1
# ... with 42 more rows
我們現在需要再擴大一點,我們使用函式pivot_wider. 我們希望該列loc_map_column成為數字列的名稱。在上一步中,所有數字列都映射到名為“ value”的列
pivot_wider(longer, names_from = loc_map_column, values_from = value)
我們可以用管道運算子 ( ) 將這兩個步驟合二為一%>%,得到
summarydf %>%
pivot_longer(cols = where(is.numeric), names_to = 'measure') %>%
pivot_wider(names_from = loc_map_column, values_from = value)
這給出了輸出
# A tibble: 24 x 6
loc_stim_column measure RA LV LA RV
<chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 NSR logVelocity -0.503 -0.183 0.00731 -0.352
2 NSR confidence_lower 0.2 0.4 0.44 0.133
3 NSR confidence_upper 0.2 0.4 0.44 0.133
4 NSR p_value 0.2 0.4 0.44 0.133
5 loc_stimLA logVelocity -0.0346 NA NA -0.623
6 loc_stimLA confidence_lower 0.3 NA NA 0.311
7 loc_stimLA confidence_upper 0.3 NA NA 0.311
8 loc_stimLA p_value 0.3 NA NA 0.311
9 loc_stimRA logVelocity -0.691 -0.913 NA -0.536
10 loc_stimRA confidence_lower 0.1 0.11 NA 0.001
# ... with 14 more rows
uj5u.com熱心網友回復:
有一些可用的格式來試驗你的資料框會很有幫助。但是,我會使用庫中的group_by()和的組合pivot_wider():dplyr和tidyr.
https://tidyr.tidyverse.org/reference/pivot_wider.html
希望它作為一個開始會有所幫助......如果您提供一些復制粘貼格式,我可以嘗試一下。
uj5u.com熱心網友回復:
也許有一種方法可以讓它更清晰,但是這段代碼可以完成你正在尋找的東西。你可以試試這樣的
data <- data.frame(a = c(1:13),
loc_map_column = c("RA","RA","RA","LV","LV","LV","LV",
"LA","LA","RV","RV","RV","RV"),
loc_stim_column = c("NSR","loc_stimLA","loc_stimRA","NSR",
"loc_stimLV","loc_stimRA","loc_stimRV","NSR",
"loc_stimRA","NSR","loc_stimLA","loc_stimLV",
"loc_stimRA"),
logVelocity = c(-0.502600888,-0.034630279,-0.691259575,-0.182731047,
-0.236928272,-0.913238563,-0.042520352,0.007310606,
-0.340983839,-0.351529452,-0.622877246,-0.175692036,
-0.535687639),
confidence_lower = c(-0.8253034,-0.034630279,-0.691259575,-0.182731047,
-0.236928272,-0.913238563,-0.042520352,0.007310606,
-0.340983839,-0.351529452,-0.622877246,-0.175692036,
-0.535687639),
confidence_upper = c(-0.1798744,0.3684858,-0.30230958,0.46092692,
0.53562934,-0.13692249,0.77911468,0.32826335,
0.09108281,0.18298935,0.07870576,0.4567075,
0.10106017),
p_value = c(0.0404513,2.084996E-29,0.00000002582846,0.5829759,
0.4102663,2.867447E-27,0.1212858,0.9650069,
0.000000001413686,0.2710587,0.00142231,0.0004382634,
0.0004286051))
data <- data[,-1]
dtalogV <- data %>% group_by(loc_stim_column) %>%
pivot_wider(names_from = loc_map_column,values_from = logVelocity,
id_cols = loc_stim_column)
dtaconfL <- data %>% group_by(loc_stim_column) %>%
pivot_wider(names_from = loc_map_column,values_from = confidence_lower,
id_cols = loc_stim_column)
dtaconfU <- data %>% group_by(loc_stim_column) %>%
pivot_wider(names_from = loc_map_column,values_from = confidence_upper,
id_cols = loc_stim_column)
dtaPval <- data %>% group_by(loc_stim_column) %>%
pivot_wider(names_from = loc_map_column,values_from = p_value,
id_cols = loc_stim_column)
varnames <- c(rep("logVelocity",length(dtalogV)),rep("confidence_lower",length(dtaconfU)),
rep("confidence_upper",length(dtaPval)),rep("p_value",length(dtaconfL)))
databind <- rbind(dtalogV,dtaconfL,dtaconfU,dtaPval)
final <- data.frame(databind,varnames=varnames)
final <- final[,c(1,6,2:5)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/463798.html
