我有一个包含多个列和不同行数的data.frames
列表,当Cumulative
列的值为零但递归时,我想创建一组新的列表,即一个输出,其中累积列的第一个值为零,另一个输出的第二个值为零,依此类推。
以下是我的列表的样子:
$test
$ABO
Locus Gene Link Semantic Combined Cumulative Notes
1 ABO GTF3C5 0.0173 0.2622 0.1398 0.1398 Good
2 ABO GBGT1 0.0734 0.0790 0.0762 0.2160
3 ABO ABO 0.1363 0.0125 0.0744 0.2904
4 ABO BRD3 0.0006 0.1048 0.0527 0.3431
5 ABO VAV2 0.0020 0.1023 0.0521 0.3952
6 ABO WDR5 0.0546 0.0441 0.0494 0.4446
7 ABO RPL7A 0.0345 0.0640 0.0493 0.4939
$ACSL1
Locus Gene Link Semantic Combined Cumulative Notes
37 ACSL1 CENPU 0.3358 0.0000 0.1679 0.1679 Good
38 ACSL1 CCDC110 0.0175 0.2900 0.1538 0.3217
39 ACSL1 TRAPPC11 0.0143 0.2658 0.1400 0.4617
40 ACSL1 IRF2 0.0316 0.2063 0.1189 0.5806
41 ACSL1 ANKRD37 0.0707 0.1001 0.0854 0.6660
42 ACSL1 ACSL1 0.0333 0.1157 0.0745 0.7405
$ADAMTS9
Locus Gene Link Semantic Combined Cumulative Notes
56 ADAMTS9 ATXN7 0.1424 1 0.5712 0.5712 Good
57 ADAMTS9 C3orf49 0.3463 0 0.1732 0.7444
$ADCY5
Locus Gene Link Semantic Combined Cumulative Notes
62 ADCY5 ADCY5 0.4132 0.8535 0.6333 0.6333 Good
63 ADCY5 SEMA5B 0.1679 0.0000 0.0839 0.7172
$ANK1
Locus Gene Link Semantic Combined Cumulative Notes
75 ANK1 POLB 0.0820 0.2270 0.1545 0.1545 Good
76 ANK1 NKX6-3 0.2563 0.0000 0.1282 0.2827
77 ANK1 ANK1 0.1314 0.0690 0.1002 0.3829
78 ANK1 SFRP1 0.0628 0.1206 0.0917 0.4746
79 ANK1 AP3M2 0.1118 0.0626 0.0872 0.5618
80 ANK1 PLAT 0.1554 0.0000 0.0777 0.6395
81 ANK1 CHRNA6 0.0031 0.1418 0.0725 0.7120
我一直在尝试实现for loop
,但我只获得一个列表,Cumulative
列的最后一个值为零。我需要对每个输出列表进行下游分析
到目前为止,这是我的代码:
list.1 <- list()
for (i in 1:length(test)){
for (j in 1:dim(scores.thres.v2[[i]])[1]){
df <- scores.thres.v2[[i]]
df[j,"Cumulative"] <- 0
list.1[[i]] <- df
}
}
由于
答案 0 :(得分:1)
我对您的问题的解释:遍历列表中的每个data.frame。在循环内,遍历每一行并返回一个data.frame,其中变量&#34;累积&#34;最终结果是数据框列表的列表。
以下是实现此目的的一种方法:
myList <- lapply(test, function(i) lapply(1:nrow(i),
function(j) {i[j, "Cumulative"] <- 0; i}))
数据强>
ABO <- read.table(header=T, , stringsAsFactors=F, text="Locus Gene Link Semantic Combined Cumulative
1 ABO GTF3C5 0.0173 0.2622 0.1398 0.1398
2 ABO GBGT1 0.0734 0.0790 0.0762 0.2160
3 ABO ABO 0.1363 0.0125 0.0744 0.2904
4 ABO BRD3 0.0006 0.1048 0.0527 0.3431
5 ABO VAV2 0.0020 0.1023 0.0521 0.3952
6 ABO WDR5 0.0546 0.0441 0.0494 0.4446
7 ABO RPL7A 0.0345 0.0640 0.0493 0.4939")
ACSL1 <- read.table(header=T, , stringsAsFactors=F, text="Locus Gene Link Semantic Combined Cumulative
37 ACSL1 CENPU 0.3358 0.0000 0.1679 0.1679
38 ACSL1 CCDC110 0.0175 0.2900 0.1538 0.3217
39 ACSL1 TRAPPC11 0.0143 0.2658 0.1400 0.4617
40 ACSL1 IRF2 0.0316 0.2063 0.1189 0.5806
41 ACSL1 ANKRD37 0.0707 0.1001 0.0854 0.6660
42 ACSL1 ACSL1 0.0333 0.1157 0.0745 0.7405")
test <- list("ABO"=ABO, "ACSL1"=ACSL1)