如何融化数据框中选定的单列
How to melt a selected single column in a data frame
使用此代码:
dat <- structure(list(Probes = structure(1:6, .Label = c("1415670_at",
"1415671_at", "1415672_at", "1415673_at", "1415674_a_at", "1415675_at"
), class = "factor"), Genes = structure(c(2L, 1L, 4L, 5L, 6L,
3L), .Label = c("Atp6v0d1", "Copg1", "Dpm2", "Golga7", "Psph",
"Trappc4"), class = "factor"), FOO = c(1.133, 1.068,
1.01, 0.943, 1.048, 1.053)), .Names = c("Probes", "Genes", "FOO"
), row.names = c(NA, 6L), class = "data.frame")
我创建了以下数据框:
Probes Genes FOO
1 1415670_at Copg1 1.133
2 1415671_at Atp6v0d1 1.068
3 1415672_at Golga7 1.010
4 1415673_at Psph 0.943
5 1415674_a_at Trappc4 1.048
6 1415675_at Dpm2 1.053
我想做的是 select 最后一列,然后像这样融化它:
FOO 1.133
FOO 1.068
FOO 1.010
FOO 0.943
FOO 1.048
FOO 1.053
我该怎么做?
我受困于这段代码:
library(reshape2)
melt(dat[,ncol(dat)])
我们可以在选择'FOO'列后使用stack
。
stack(dat['FOO'])
或
melt(dat['FOO'])
dat[,'FOO']
不是 data.frame
。这是一个vector
。我们可以在?Extract
中找到[
、[[
等的区别。当只有一个列时,带有 [
的默认选项是 drop=TRUE
。如果我们使用 ,
指定行索引,我们可以指定 drop=FALSE
。
stack(dat[, "FOO", drop=FALSE])
如果我们不知道列名,就用ncol
stack(dat[ncol(dat)])
区别在于我们如何使用它以及返回的对象。
使用此代码:
dat <- structure(list(Probes = structure(1:6, .Label = c("1415670_at",
"1415671_at", "1415672_at", "1415673_at", "1415674_a_at", "1415675_at"
), class = "factor"), Genes = structure(c(2L, 1L, 4L, 5L, 6L,
3L), .Label = c("Atp6v0d1", "Copg1", "Dpm2", "Golga7", "Psph",
"Trappc4"), class = "factor"), FOO = c(1.133, 1.068,
1.01, 0.943, 1.048, 1.053)), .Names = c("Probes", "Genes", "FOO"
), row.names = c(NA, 6L), class = "data.frame")
我创建了以下数据框:
Probes Genes FOO
1 1415670_at Copg1 1.133
2 1415671_at Atp6v0d1 1.068
3 1415672_at Golga7 1.010
4 1415673_at Psph 0.943
5 1415674_a_at Trappc4 1.048
6 1415675_at Dpm2 1.053
我想做的是 select 最后一列,然后像这样融化它:
FOO 1.133
FOO 1.068
FOO 1.010
FOO 0.943
FOO 1.048
FOO 1.053
我该怎么做?
我受困于这段代码:
library(reshape2)
melt(dat[,ncol(dat)])
我们可以在选择'FOO'列后使用stack
。
stack(dat['FOO'])
或
melt(dat['FOO'])
dat[,'FOO']
不是 data.frame
。这是一个vector
。我们可以在?Extract
中找到[
、[[
等的区别。当只有一个列时,带有 [
的默认选项是 drop=TRUE
。如果我们使用 ,
指定行索引,我们可以指定 drop=FALSE
。
stack(dat[, "FOO", drop=FALSE])
如果我们不知道列名,就用ncol
stack(dat[ncol(dat)])
区别在于我们如何使用它以及返回的对象。