从数据框行的随机标签创建因子向量
Create Vector of Factors from random labelling of rows of a data frame
我有一个包含 110 行的数据框,它是来自微阵列实验表达式集对象的 pData。我想创建一个具有 2 个级别的因子向量,随机分配给行(代表实验样本)。例如,如果实验中有 110 行对应于 110 名受试者,我希望将 55 行设置为“G0”,将 55 行设置为“G1”。这些组用于后续功能。
我目前正在尝试包含在我要修改的函数中的以下内容:
# makes a numeric vector of the number of subjects/rows in the pData
sml<-rep(0,length(colnames(eset))
# ‘populate’ sml with G0 & G1
sml[sample(sml,(length(sml)/2))]<-"G0"
sml[sample(sml,(length(sml)/2))]<-"G1"
label <- as.factor(sml)
如何采样,使 G1 组完成 sml 的长度,并保持已分配为 G0 的位置不变?
谢谢
这是正确答案
eset <- matrix(NA, ncol = 110, nrow = 1)
good <- sample(
rep(
factor(c("G0", "G1")),
ncol(eset) %/% 2
)
)
table(good)
这是个坏例子
bad <- sample(c("G0", "G1"), ncol(eset), replace = TRUE)
table(bad)
我有一个包含 110 行的数据框,它是来自微阵列实验表达式集对象的 pData。我想创建一个具有 2 个级别的因子向量,随机分配给行(代表实验样本)。例如,如果实验中有 110 行对应于 110 名受试者,我希望将 55 行设置为“G0”,将 55 行设置为“G1”。这些组用于后续功能。 我目前正在尝试包含在我要修改的函数中的以下内容:
# makes a numeric vector of the number of subjects/rows in the pData
sml<-rep(0,length(colnames(eset))
# ‘populate’ sml with G0 & G1
sml[sample(sml,(length(sml)/2))]<-"G0"
sml[sample(sml,(length(sml)/2))]<-"G1"
label <- as.factor(sml)
如何采样,使 G1 组完成 sml 的长度,并保持已分配为 G0 的位置不变? 谢谢
这是正确答案
eset <- matrix(NA, ncol = 110, nrow = 1)
good <- sample(
rep(
factor(c("G0", "G1")),
ncol(eset) %/% 2
)
)
table(good)
这是个坏例子
bad <- sample(c("G0", "G1"), ncol(eset), replace = TRUE)
table(bad)