Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Dplyr_Multiple Columns_Rscript - Fatal编程技术网

R 获取一个巨大的单细胞数据帧的每个样本的总计数

R 获取一个巨大的单细胞数据帧的每个样本的总计数,r,loops,dplyr,multiple-columns,rscript,R,Loops,Dplyr,Multiple Columns,Rscript,我有一个巨大的元数据文件,有79列和78687行。此元数据来自我们的癌症实验结果。 我使用dplyr查询元数据中每个样本的单元格计数 我有16个样品: , 我需要找到每个样本中每种情况(肿瘤、正常或MSS_状态)的细胞计数。 我个人做这件事的目的如下 dim(meta %>% filter(Condition == "Tumor" & MSI_Status=="MSS" & Location =="Left" &a

我有一个巨大的元数据文件,有79列和78687行。此元数据来自我们的癌症实验结果。 我使用dplyr查询元数据中每个样本的单元格计数

我有16个样品:

,

我需要找到每个样本中每种情况(肿瘤、正常或MSS_状态)的细胞计数。 我个人做这件事的目的如下

dim(meta %>% filter(Condition == "Tumor" & MSI_Status=="MSS" & Location =="Left" & orig.ident == "B_cac10"));

# 689  24
我相信有一种聪明的方法可以做到这一点,我如何循环这个问题,一次就得到答案

我是一名生物学家,在循环或编码方面我的知识非常有限

编辑:1

可复制示例

df <- data.frame(Condition = c("Normal","Normal","Normal","Tumor","Tumor","Tumor"),
                 MSI_Status = c("High", "High", "High", "Low", "Low", "Low"),
                 Location = c("Lungs", "Lungs", "Lungs", "Kidney", "Kidney", "Liver"), 
                 Clusters = c(1,2,4,2,2,6), 
                 orig.ident = c("B-cac10","B-cac11","T-cac15","B-cac15","B-cac19","T-cac22"))
预期成果:

应在“肿瘤”、MSI_状态=“低”和位置=“肾”的条件下给出每个原始标识计数

非常感谢你的帮助,注意安全。
Dave

您可以使用
dplyr
功能
filter
根据您的条件对数据进行子集划分。然后,您可以使用
dplyr
count
功能对
原始标识中的唯一值进行计数。如注释中所述,您可以选择在此函数中设置
name=Freq
。我选择使用
rename
函数,因为您是
R
的新手,因此它尽可能明确

数据

df <- data.frame(Condition = 
c("Normal","Normal","Normal","Tumor","Tumor","Tumor"), MSI_Status = 
c("High", "High", "High", "Low", "Low", "Low"), Location = c("Lungs", 
"Lungs", "Lungs", "Kidney", "Kidney", "Liver"), Clusters = 
c(1,2,4,2,2,6), orig.ident=c("B-cac10","B-cac11","T-cac15","B- 
cac15","B-cac19","T-cac22"))

由(v0.3.0)

于2020-09-05创建,您可以编辑并添加一个
dput(您的_数据)
示例作为代码块吗?非常感谢,内特,我已经编辑了这个问题,请看一看。使用
按钮的
{/code>按钮intead在SO编辑器中格式化代码。如果您想直接使用标记,您可以使用`(3个背景标记)作为围绕代码的打开和关闭标记谢谢Nate,我会记住这一点。非常感谢,我添加了一个可复制的示例。请看一看Hi@David我更新了我的解决方案,其中包括根据您提供的标准添加
过滤器
。可能
计数(orig.intent,name='Freq'))
而不是重命名?鉴于@David对编码的接触有限,我认为将其分解为两个函数会更容易理解正在发生的事情。这不是最优雅的,但希望他能更清楚地理解代码的作用。非常感谢@iamericfletcher,我感谢你的努力s、 我确实尝试了这些代码,但它显示了以下错误..计数错误(,orig.ident):找不到对象'orig.ident'
df <- data.frame(Condition = 
c("Normal","Normal","Normal","Tumor","Tumor","Tumor"), MSI_Status = 
c("High", "High", "High", "Low", "Low", "Low"), Location = c("Lungs", 
"Lungs", "Lungs", "Kidney", "Kidney", "Liver"), Clusters = 
c(1,2,4,2,2,6), orig.ident=c("B-cac10","B-cac11","T-cac15","B- 
cac15","B-cac19","T-cac22"))