R 如何从矩阵列表创建汇总表?
数据:R 如何从矩阵列表创建汇总表?,r,list,matrix,rename,reshape2,R,List,Matrix,Rename,Reshape2,数据: k1 <- structure(list(`3280.2000` = structure(c(0, 1.363, 0, 4.198, 1.097, 1.669, 0, 1.098, 0), .Dim = c(3L, 3L), .Dimnames = list( c("3280.3500", "3280.400", "3280.4000"), c("3280.3500", "3280.400", "3280.4000"))), `160.2000` = stru
k1 <-
structure(list(`3280.2000` = structure(c(0, 1.363, 0, 4.198,
1.097, 1.669, 0, 1.098, 0), .Dim = c(3L, 3L), .Dimnames = list(
c("3280.3500", "3280.400", "3280.4000"), c("3280.3500", "3280.400",
"3280.4000"))), `160.2000` = structure(c(0.935, 0.929, 1.1,
1.152), .Dim = c(2L, 2L), .Dimnames = list(
c("160.2200", "160.2300"), c("160.2200", "160.2300")))), .Names = c("3280.2000", "160.2000"))
#k1 Looks like
# $`3280.2000`
# 3280.3500 3280.400 3280.4000
# 3280.3500 0.000 4.198 0.000
# 3280.400 1.363 1.097 1.098
# 3280.4000 0.000 1.669 0.000
#
# $`160.2000`
# 160.2200 160.2300
# 160.2200 0.935 1.100
# 160.2300 0.929 1.152
k2 <-
structure(list(`3280.2000` = structure(c(0, 1.363, 0, 4.198,
1.097, 1.669, 0, 1.098, 0), .Dim = c(3L, 3L), .Dimnames = list(
c("400","3500", "4000"), c("400", "3500",
"4000"))), `160.2000` = structure(c(0.935, 0.929, 1.152,
0.903), .Dim = c(2L, 2L), .Dimnames = list(c("2200", "2300"
), c("2200", "2300")))), .Names = c("3280.2000", "160.2000"
))
#k2 Looks like
# $`3280.2000`
# 400 3500 4000
# 400 0.000 4.198 0.000
# 3500 1.363 1.097 1.098
# 4000 0.000 1.669 0.000
#
# $`160.2000`
# 2200 2300
# 2200 0.935 1.152
# 2300 0.929 0.903
b) 我可以更改一个矩阵的colname,但我不知道如何对一个数组中的多个矩阵进行更改。当我尝试这样做时,我会得到一个名称列表(没有更多的值!),而不是名称的更新
#this works
colnames(k1[[1]]) <- gsub("*.*\\.", "", colnames(k1[[1]]))
#this does not - returns names where values should be!
k1 <- lapply(k1, function (x) {colnames(x) <- gsub("*.*\\.", "", colnames(x))}
#这很有效
colnames(k1[[1]])lapply语句ins未提供所需输出的原因是您忘记返回x
# instead of:
h <- lapply(h, function (x) {colnames(x) <- gsub("*.*\\.", "", colnames(x))})
# Try this:
h <- lapply(h, function (x) {colnames(x) <- gsub("*.*\\.", "", colnames(x)); x})
#而不是:
保罗,那么你觉得这个怎么样或者,这个问题专门针对难看的代码:@JackRyan,你能编辑你的问题以包含所需输出的示例吗?此外,也许还可以显示h
的来源
# instead of:
h <- lapply(h, function (x) {colnames(x) <- gsub("*.*\\.", "", colnames(x))})
# Try this:
h <- lapply(h, function (x) {colnames(x) <- gsub("*.*\\.", "", colnames(x)); x})