R 使用字符串变量为对象槽赋值
我有一个Seurat单细胞基因表达对象,它有插槽 其中一个插槽是@meta.data,它是一个矩阵 我想创建一个列$orig.ident,将meta$brain.region的值指定为一个因子。meta是我的原始元数据表 我正在为一组数据集做这项工作,并希望使其具有普遍性 其思想是,用户只需输入原始对象的名称,从那时起,所有内容都将被相应地调用 用户提示: >数据集seurat.obj loaddatasetR 使用字符串变量为对象槽赋值,r,object,bioinformatics,assign,seurat,R,Object,Bioinformatics,Assign,Seurat,我有一个Seurat单细胞基因表达对象,它有插槽 其中一个插槽是@meta.data,它是一个矩阵 我想创建一个列$orig.ident,将meta$brain.region的值指定为一个因子。meta是我的原始元数据表 我正在为一组数据集做这项工作,并希望使其具有普遍性 其思想是,用户只需输入原始对象的名称,从那时起,所有内容都将被相应地调用 用户提示: >数据集seurat.obj loaddataset >seurat.obj.new首先,只需编写一个函数,假设您传入了实际的数据对象并返回
>seurat.obj.new首先,只需编写一个函数,假设您传入了实际的数据对象并返回了一个更新的数据对象。比如说
my_fun <- function(x) {
x@meta.data$orig.ident <- factor(meta$brain.region)
x
}
那么通常你会这样称呼它
gw14.2 <- my_fun(gw14)
注意R中的函数应该返回一个值并返回一个更新的值。它们不应该有像创建变量这样的副作用。这应该在用户控件中
如果确实希望将数据对象作为字符串使用,可以这样做
seurat.obj <- "gw14"
seurat.obj.new <- paste0(seurat.obj, ".", 2)
assign(seurat.obj.new, my_fun(get(seurat.obj)))
但是这种类型的行为与大多数R函数的操作方式不一致。在寻求帮助时,您应该包括一个简单的示例输入和所需的输出,用于测试和验证可能的解决方案。特别的“谢谢”先生。我正在为一组数据集做这项工作,并希望使其具有普遍性。这个想法是用户只需要输入原始对象的名称,从那时起,所有的东西都会被相应地调用?为什么不编写一个适当的函数,让它们也可以传递数据呢。对象gw14包含在一个.RData文件中,这是用户首先要输入的内容。之后,提示输入对象的名称是告诉R从工作区中获取哪个对象。
gw14.2 <- my_fun(gw14)
seurat.obj <- "gw14"
seurat.obj.new <- paste0(seurat.obj, ".", 2)
assign(seurat.obj.new, my_fun(get(seurat.obj)))