首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用另一个数据帧的信息/值填充新的数据框架?

如何使用另一个数据帧的信息/值填充新的数据框架?
EN

Stack Overflow用户
提问于 2022-10-29 21:51:30
回答 1查看 28关注 0票数 0

如何使用另一个数据帧的信息/值填充新的数据框架?

如果原始数据为exp.kirp.log2,则元数据列值将为kirp。如果它是exp.kich.log2,那么元数据将是kich等。

exp2.log2是三个数据帧的组合。

代码语言:javascript
复制
exp.log2 <- cbind(exp.kirp.log2, exp.kirc.log2, exp.kich.log2)

现在,我希望创建一个新的dataframe metadata,其行名与exp.log2的冒号相等。然后,我希望为metadata分配一个列,其中包含子类型信息(即kirp、kirc和kich)。

代码语言:javascript
复制
exp.kirp.log2$subtype <- "KIRP"
exp.kirc.log2$subtype <- "KIRC"
exp.kich.log2$subtype <- "KICH"
metadata <- data.frame(matrix(ncol = 0, nrow = ncol(exp.log2)))
rownames(metadata) <- colnames(exp.log2)
metadata$subtype <- exp.kirp.log2[match(rownames(metadata), colnames(exp.kirp.log2)),exp.kirp.log2$subtype]

回溯:

代码语言:javascript
复制
Error in `[.data.frame`(exp.kirp.log2, match(rownames(metadata2), colnames(exp.kirp.log2)),  : 
  undefined columns selected

exp.kirp.log2

代码语言:javascript
复制
> dput(exp.kirp.log2[1:5,1:5])
structure(list(TCGA.2K.A9WE.01A = c(7.65342121905285, 2.03892776611756, 
-0.96100202120249, 6.35598354101006, -Inf), TCGA.2Z.A9J1.01A = c(5.09389393824392, 
5.2160706644244, -Inf, 6.93597002271109, -Inf), TCGA.2Z.A9J2.01A = c(5.51854458067276, 
4.11644793551166, -Inf, 7.5307754013178, -Inf), TCGA.2Z.A9J3.01A = c(4.70168212029528, 
3.34111759260469, 3.57815377007565, 7.54694769203808, -Inf), 
    TCGA.2Z.A9J5.01A = c(7.99645936536463, 5.20408983959317, 
    1.64952349150802, 6.89258167250936, -Inf)), row.names = c("A1BG", 
"A1CF", "A2BP1", "A2LD1", "A2ML1"), class = "data.frame")

exp.kirc.log2

代码语言:javascript
复制
> dput(exp.kirc.log2[1:5,1:5])
structure(list(TCGA.3Z.A93Z.01A = c(7.60710168395891, 6.59399907429693, 
0.912189968482442, 5.86606228532002, -0.672772532238714), TCGA.6D.AA2E.01A = c(5.29679509798346, 
5.33895561100057, -Inf, 8.5246110567563, 2.81058705767919), TCGA.A3.3306.01A = c(3.63487202316421, 
6.98654291078066, -Inf, 7.56954121842147, -Inf), TCGA.A3.3307.01A = c(4.30394874845039, 
7.75218860897157, -Inf, 6.94927811978134, -Inf), TCGA.A3.3308.01A = c(4.52027137056763, 
6.81247512149133, -0.124219936931512, 6.41770908193329, -Inf)), row.names = c("A1BG", 
"A1CF", "A2BP1", "A2LD1", "A2ML1"), class = "data.frame")

exp.kich.log2

代码语言:javascript
复制
> dput(exp.kich.log2[1:5,1:5])
structure(list(TCGA.KL.8323.01A = c(3.20011195634, -Inf, -Inf, 
5.86938532751066, -Inf), TCGA.KL.8324.01A = c(2.71784638377681, 
-1.08957432714833, -1.08957432714833, 6.40571672415247, -Inf), 
    TCGA.KL.8325.01A = c(3.00203636889806, 0.417055859813149, 
    2.32397526869577, 4.95203530400747, -Inf), TCGA.KL.8326.01A = c(7.05192236143441, 
    -Inf, 0.568615876713783, 5.98514745510282, -1.01624935164507
    ), TCGA.KL.8327.01A = c(5.50089763480962, -0.0840584940198524, 
    -0.0840584940198524, 4.49185309632967, -Inf)), row.names = c("A1BG", 
"A1CF", "A2BP1", "A2LD1", "A2ML1"), class = "data.frame")
EN

回答 1

Stack Overflow用户

发布于 2022-10-29 22:14:36

希望这能帮到你:我不知道每一个exp.ki?数据帧有相同的列数,然后我在每个ncol中使用ncol

代码语言:javascript
复制
metadata <- data.frame(subtype = rep(
  c("KIRP", "KIRC","KICH"), 
  c(ncol(exp.kirp.log2),ncol(exp.kirc.log2),ncol(exp.kich.log2))
rownames(metadata) <- colnames(exp2.log2)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74249117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档