Reputation: 1012
I have a list of 200 data tables like below
[[1]]
SYMBOL SIGNALINTENSITY CALL PVALUE
1: DDR1 1272.0796 P 0.0029235941
2: MIR4640 1272.0796 P 0.0029235941
3: RFC2 501.8763 A 0.2040220548
4: HSPA6 721.1877 P 0.0038229257
5: PAX8 2807.3700 P 0.0006731656
6: GUCA1A 213.1593 A 0.2668473097
[[2]]
SYMBOL SIGNALINTENSITY CALL PVALUE
1: FAM86B1 168.5479 A 0.2189832287
2: FAM86FP 168.5479 A 0.2189832287
3: FAM86B2 168.5479 A 0.2189832287
4: FAM86DP 168.5479 A 0.2189832287
5: LOC100505915 773.4419 P 0.0005617505
6: LINC00273 670.4535 P 0.0002967575
[[3]]
SYMBOL SIGNALINTENSITY CALL PVALUE
1: FAM86B1 168.5479 A 0.2189832287
2: FAM86FP 168.5479 A 0.2189832287
3: FAM86B2 168.5479 A 0.2189832287
4: FAM86DP 168.5479 A 0.2189832287
5: LOC100505915 773.4419 P 0.0005617505
6: LINC00273 670.4535 P 0.0002967575
I want to rename the data-table columns uniquely. Like below, so columns is carrying a subscript of 1,2,3, based on list order. The first column name should be same, as i need to merge the list by first column.
[[1]]
SYMBOL SIGNALINTENSITY1 CALL1 PVALUE1
1: DDR1 1272.0796 P 0.0029235941
2: MIR4640 1272.0796 P 0.0029235941
3: RFC2 501.8763 A 0.2040220548
4: HSPA6 721.1877 P 0.0038229257
5: PAX8 2807.3700 P 0.0006731656
6: GUCA1A 213.1593 A 0.2668473097
[[2]]
SYMBOL SIGNALINTENSITY2 CALL2 PVALUE2
1: FAM86B1 168.5479 A 0.2189832287
2: FAM86FP 168.5479 A 0.2189832287
3: FAM86B2 168.5479 A 0.2189832287
4: FAM86DP 168.5479 A 0.2189832287
5: LOC100505915 773.4419 P 0.0005617505
6: LINC00273 670.4535 P 0.0002967575
[[3]]
SYMBOL SIGNALINTENSITY3 CALL3 PVALUE3
1: FAM86B1 168.5479 A 0.2189832287
2: FAM86FP 168.5479 A 0.2189832287
3: FAM86B2 168.5479 A 0.2189832287
4: FAM86DP 168.5479 A 0.2189832287
5: LOC100505915 773.4419 P 0.0005617505
6: LINC00273 670.4535 P 0.0002967575
Upvotes: 3
Views: 957
Reputation: 887118
if 'lst' is the list of data.table
(it seems data.table
instead of data.frame
)
library(data.table)
lapply(seq_along(lst), function(i) setnames(lst[[i]],
2:ncol(lst[[i]]), paste0(names(lst[[i]])[-1],i)))
lst
#[[1]]
# SYMBOL SIGNALINTENSITY1 CALL1 PVALUE1
#1: DDR1 1272.0796 P 0.0029235941
#2: MIR4640 1272.0796 P 0.0029235941
#3: RFC2 501.8763 A 0.2040220548
#4: HSPA6 721.1877 P 0.0038229257
#5: PAX8 2807.3700 P 0.0006731656
#6: GUCA1A 213.1593 A 0.2668473097
#[[2]]
# SYMBOL SIGNALINTENSITY2 CALL2 PVALUE2
#1: FAM86B1 168.5479 A 0.2189832287
#2: FAM86FP 168.5479 A 0.2189832287
#3: FAM86B2 168.5479 A 0.2189832287
#4: FAM86DP 168.5479 A 0.2189832287
#5: LOC100505915 773.4419 P 0.0005617505
#6: LINC00273 670.4535 P 0.0002967575
#[[3]]
# SYMBOL SIGNALINTENSITY3 CALL3 PVALUE3
#1: FAM86B1 168.5479 A 0.2189832287
#2: FAM86FP 168.5479 A 0.2189832287
#3: FAM86B2 168.5479 A 0.2189832287
#4: FAM86DP 168.5479 A 0.2189832287
#5: LOC100505915 773.4419 P 0.0005617505
#6: LINC00273 670.4535 P 0.0002967575
Upvotes: 3