[英]Combining and appending columns of different lengths, by row number, R
我正在處理受試者的生化數據,按性別分析結果。 我有19種生化測試可對兩種葯物的每種性別進行分析(稍后將進行血液學和解剖學測試)。
出於結果可重復性和防止轉錄錯誤的原因,我嘗試將每個測試匯總到一個表中。 在表格輸出中,我需要一列用於Dunnett事后比較p值。 因為Dunnett檢驗與對照結果比較,在對照和3種葯物水平下,我只得到3個p值。 但是,我有4個均值和sd值。
使用ddply來獲取均值和sd結果(由於有效數字的數量有限,我得到了一個數據集,如下所示:
Sex<- c(rep("F",4), rep("M",4))
Druglevel <- c(rep(0:3,2))
Sample <- c(rep(10,8))
Mean <- c(0.44, 0.50, 0.46, 0.49, 0.48, 0.55, 0.47, 0.57)
sd <- c(0.07, 0.07, 0.09, 0.12, 0.18, 0.19, 0.13, 0.41)
Drug1Biochem1 <- data.frame(Sex, Druglevel, Sample, Mean, sd)
我已經在軟件包multcomp
使用glht
,對通過執行普通aov
構造的aov
對象執行Dunnett測試。 我從glht
摘要中提取了p值(將這些值四舍五入到小數點后三位)。 男性和女性分析是使用獨立的ANOVA
因此對於每種性別,我都有一組輸出。 女性的結果是:
femaleR <- c(0.371, 0.973, 0.490)
男性結果為:
maleR <- c(0.862, 0.999, 0.738)
如何將一列p值附加到原始數據框(Drug1Biochem1),以便femaleR和maleR都在該最后一列中,而該列的第1行和第5行為空(即,控件沒有p值) ?
我希望將結果組合輸出到html,可以將其插入到Word文檔中,因此不會發生轉錄錯誤。 我設置了一個種子值,以便程序的結果可再現(當我最終停止調試時)。
總而言之,我想要一個具有以下格式的數據框(或表,或任何我可以輸出到html的東西):
Sex Druglevel Sample Mean sd p-value
F 0 10 0.44 0.07
F 1 10 0.50 0.07 0.371
F 2 10 0.46 0.09 0.973
F 3 10 0.49 0.12 0.480
M 0 10 0.48 0.18
M 1 10 0.55 0.19 0.862
M 2 10 0.47 0.13 0.999
M 3 10 0.57 0.41 0.738
對於每個測試,我希望重現此精確表。 每種性別始終有4組,並且控件永遠沒有p值,該值將始終在第1行(F)和第5行(M)中進行匯總。
您可以嘗試merge
dN <- data.frame(Sex=rep(c('M', 'F'), each=3), Druglevel=1:3,
pval=c(maleR, femaleR))
merge(Drug1Biochem1, dN, by=c('Sex', 'Druglevel'), all=TRUE)
# Sex Druglevel Sample Mean sd pval
#1 F 0 10 0.44 0.07 NA
#2 F 1 10 0.50 0.07 0.371
#3 F 2 10 0.46 0.09 0.973
#4 F 3 10 0.49 0.12 0.490
#5 M 0 10 0.48 0.18 NA
#6 M 1 10 0.55 0.19 0.862
#7 M 2 10 0.47 0.13 0.999
#8 M 3 10 0.57 0.41 0.738
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.