列表中所有数据框中的 R gsub 列名称
R gsub column names in all data frames within a list
我有一个包含列名的数据框列表,我想用它替换一些字符串,但我做不对。
list:
[1]
cpg value.TCGA.06.5415.01A value.TCGA.02.0003.01A value.TCGA.16.1062.01A
cg02726808 0.934641544 NA NA
cg04243127 0.8828403 NA NA
[2]
cpg value.TCGA.QH.A6CV.01A value.TCGA.E1.A7Z4.01A value.TCGA.E1.5303.01A
cg02726808 0.938556343 0.92163563 0.959269597
cg04243127 0.886928811 0.842963126 0.937700666
[N]
.....
Desired output:
list:
[1]
cpg 06.5415.01A 02.0003.01A 16.1062.01A
cg02726808 0.934641544 NA NA
cg04243127 0.8828403 NA NA
[2]
cpg QH.A6CV.01A E1.A7Z4.01A E1.5303.01A
cg02726808 0.938556343 0.92163563 0.959269597
cg04243127 0.886928811 0.842963126 0.937700666
[N]
.....
我试着写了以下内容:
lapply(lst, function(x) { gsub("value.TCGA.", "", colnames(lst[[x]]))})
R Studio 中的错误:
Error in llis1[[xy]] : invalid subscript type 'list'
Called from: is.data.frame(x)
Browse[1]>
而且我不明白这是什么意思。感谢您的帮助。
尝试
lapply(lst, function(x) {
colnames(x) <- gsub("value.TCGA.", "", colnames(x))
return(x)
})
x
在这种情况下是 lst
的元素而不是 lst
的元素的索引。所以在你的代码中,你试图做 lst[[ lst[[1]] ]]
。从这里开始,错误消息应该是有意义的。
我们可以使用 setNames
将列名替换为 sub
中的新列名。
lapply(lst, function(x) setNames(x, sub("value.TCGA.", "", names(x))))
或者另一个选项是 substring
如果 'value.TCGA.' 位置在除第一个列之外的所有列名中都相同。
lapply(lst, function(x) setNames(x, c("cpg", substring(names(x)[-1], 12)))
我有一个包含列名的数据框列表,我想用它替换一些字符串,但我做不对。
list:
[1]
cpg value.TCGA.06.5415.01A value.TCGA.02.0003.01A value.TCGA.16.1062.01A
cg02726808 0.934641544 NA NA
cg04243127 0.8828403 NA NA
[2]
cpg value.TCGA.QH.A6CV.01A value.TCGA.E1.A7Z4.01A value.TCGA.E1.5303.01A
cg02726808 0.938556343 0.92163563 0.959269597
cg04243127 0.886928811 0.842963126 0.937700666
[N]
.....
Desired output:
list:
[1]
cpg 06.5415.01A 02.0003.01A 16.1062.01A
cg02726808 0.934641544 NA NA
cg04243127 0.8828403 NA NA
[2]
cpg QH.A6CV.01A E1.A7Z4.01A E1.5303.01A
cg02726808 0.938556343 0.92163563 0.959269597
cg04243127 0.886928811 0.842963126 0.937700666
[N]
.....
我试着写了以下内容:
lapply(lst, function(x) { gsub("value.TCGA.", "", colnames(lst[[x]]))})
R Studio 中的错误:
Error in llis1[[xy]] : invalid subscript type 'list'
Called from: is.data.frame(x)
Browse[1]>
而且我不明白这是什么意思。感谢您的帮助。
尝试
lapply(lst, function(x) {
colnames(x) <- gsub("value.TCGA.", "", colnames(x))
return(x)
})
x
在这种情况下是 lst
的元素而不是 lst
的元素的索引。所以在你的代码中,你试图做 lst[[ lst[[1]] ]]
。从这里开始,错误消息应该是有意义的。
我们可以使用 setNames
将列名替换为 sub
中的新列名。
lapply(lst, function(x) setNames(x, sub("value.TCGA.", "", names(x))))
或者另一个选项是 substring
如果 'value.TCGA.' 位置在除第一个列之外的所有列名中都相同。
lapply(lst, function(x) setNames(x, c("cpg", substring(names(x)[-1], 12)))