按列名将数据集拆分为多个
Split dataset into multiple by column names
我正在尝试根据列名将数据集拆分为多个数据集:
for(i in 1:nrow(column_vals)){
dataset_filtered <- dataset_metadata %>%
filter(characteristics..strain == column_vals[i,1],
characteristics..age == column_vals[i,2])
samples <- dataset_filtered[,1]
samples <- substr(samples, 1, 22)
exprs_filtered <- as.data.frame(exprs) %>% filter(colnames(exprs) %in%
samples)
saveRDS(exprs_filtered, paste0(path, i, sep=""))
}
samples
是一个 character
数组,其中包含每次迭代时需要选择的不同列名。使用上面的代码我得到一个错误:
exprs
的尺寸为 21266x24185
。我尝试使用 grepl
函数:
is.in <- grepl(paste(colnames(exprs), collapse="|"), samples)
exprs_filtered <- exprs[, is.in]
但它又给我一个错误:
我在这里做错了什么?如何解决问题?任何建议将不胜感激。
Update
我尝试转置 exprs
数据集:as.data.frame(t(exprs)) %>% ...
并且错误消失了,但过滤仍然不起作用:每次迭代我得到零过滤结果。 exprs
数据集如下所示:
samples
字符数组之一:
如果您的数据是 21266x24185,该错误表明您可能需要使用 t()
转置表达式或样本以获得相同的方向。
编辑:
R 已将 X 附加到您的表达式 headers,因此它们不再与示例中的匹配。在读取 exprs 文件时(例如 read.csv()
)添加参数 check.names = F
,这将防止这种情况发生 - 但要谨慎使用,因为语法无效 headers 可能会影响其他功能。有关详细信息,请参阅 ?make.name
如果这仍然不能解决问题,请确认 expr 中的某些 headers 确实匹配样本,以便我们期待输出。
如果您提供的示例包含我们可以复制到 R 中的格式的匹配数据(文本,而不是图像),如果这不能解决问题,我们可能会进一步提供帮助。
我正在尝试根据列名将数据集拆分为多个数据集:
for(i in 1:nrow(column_vals)){
dataset_filtered <- dataset_metadata %>%
filter(characteristics..strain == column_vals[i,1],
characteristics..age == column_vals[i,2])
samples <- dataset_filtered[,1]
samples <- substr(samples, 1, 22)
exprs_filtered <- as.data.frame(exprs) %>% filter(colnames(exprs) %in%
samples)
saveRDS(exprs_filtered, paste0(path, i, sep=""))
}
samples
是一个 character
数组,其中包含每次迭代时需要选择的不同列名。使用上面的代码我得到一个错误:
exprs
的尺寸为 21266x24185
。我尝试使用 grepl
函数:
is.in <- grepl(paste(colnames(exprs), collapse="|"), samples)
exprs_filtered <- exprs[, is.in]
但它又给我一个错误:
我在这里做错了什么?如何解决问题?任何建议将不胜感激。
Update
我尝试转置 exprs
数据集:as.data.frame(t(exprs)) %>% ...
并且错误消失了,但过滤仍然不起作用:每次迭代我得到零过滤结果。 exprs
数据集如下所示:
samples
字符数组之一:
如果您的数据是 21266x24185,该错误表明您可能需要使用 t()
转置表达式或样本以获得相同的方向。
编辑:
R 已将 X 附加到您的表达式 headers,因此它们不再与示例中的匹配。在读取 exprs 文件时(例如 read.csv()
)添加参数 check.names = F
,这将防止这种情况发生 - 但要谨慎使用,因为语法无效 headers 可能会影响其他功能。有关详细信息,请参阅 ?make.name
如果这仍然不能解决问题,请确认 expr 中的某些 headers 确实匹配样本,以便我们期待输出。
如果您提供的示例包含我们可以复制到 R 中的格式的匹配数据(文本,而不是图像),如果这不能解决问题,我们可能会进一步提供帮助。