[英]R data.table assign multiple columns from list output
x = data.table(group=c("a", "b"), x1=c(9, 4), x2=c(2, 7), ss1=c(20, 20), ss2=c(20, 20))
x[,fisher.test(rbind(c(x1, ss1), c(x2, ss2)))[1:3], by=group]
計算每組的 fisher.test 並獲取 output 的前三個元素會為 p.value、conf.int 和估計生成三個命名列。 這很好,除了它只需要較低的置信區間,而不是 Fisher output 中第二個列表項的較高置信區間。
出於某種原因,在嘗試同時獲取上 CI 和下 CI 時,我無法重新創建此行為。
如果您取消列出此 output 它會給出所有四個值,但在單個列 V1 中。
x[,unlist(fisher.test(rbind(c(x1, ss1), c(x2, ss2)))[1:3]), by=group]
取消列出、重新列出、命名等的任何組合似乎都沒有給我所需的 output。
這對我來說是一個反復出現的問題,所以很高興得到答案!
這有點傻,但你可以使用as.list
:
library(data.table)
x[,as.list(unlist(fisher.test(rbind(c(x1, ss1), c(x2, ss2)))[1:3])), by=group]
group p.value conf.int1 conf.int2 estimate.odds ratio
1: a 0.0877372116511888 0.766153560249588 46.677263221989 4.37927894874589
2: b 0.507673628580576 0.106483621566036 2.70725328753808 0.577676599291802
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.