Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用字符串变量为对象槽赋值_R_Object_Bioinformatics_Assign_Seurat - Fatal编程技术网

R 使用字符串变量为对象槽赋值

R 使用字符串变量为对象槽赋值,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单细胞基因表达对象,它有插槽

其中一个插槽是@meta.data,它是一个矩阵

我想创建一个列$orig.ident,将meta$brain.region的值指定为一个因子。meta是我的原始元数据表

我正在为一组数据集做这项工作,并希望使其具有普遍性

其思想是,用户只需输入原始对象的名称,从那时起,所有内容都将被相应地调用

用户提示:

>数据集seurat.obj loaddataset


>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)))