Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.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_Dataframe_Subset - Fatal编程技术网

基于两列值的R中数据帧子集划分

基于两列值的R中数据帧子集划分,r,dataframe,subset,R,Dataframe,Subset,我有一个以不同基因表达水平为列的数据框,列包括基因所属的时间点和组。我现在想得到某个基因和组对应的基因表达值: cpm[cpm$group=="dysglyc",colnames(cpm)==gene] 但是,我还想包括一个特定的时间点: cpm[cpm$group=="dysglyc" && cpm$timepoint=="A1",colnames(cpm)==gene] 这不管用。。。有人能帮忙吗?我强烈建议您使用数据.table库,以便与您的数据一起使用此类数据.f

我有一个以不同基因表达水平为列的数据框,列包括基因所属的时间点和组。我现在想得到某个基因和组对应的基因表达值:

cpm[cpm$group=="dysglyc",colnames(cpm)==gene] 
但是,我还想包括一个特定的时间点:

cpm[cpm$group=="dysglyc" && cpm$timepoint=="A1",colnames(cpm)==gene] 

这不管用。。。有人能帮忙吗?

我强烈建议您使用
数据.table
库,以便与您的数据一起使用此类数据.frame在
组和
时间点上建立索引。你可以这样做:

cpm = data.table(cmp)  # Convert to data.table
setkeyv(cpm, c("group", "timepoint"))  # Set indexing variables.
然后,您可以使用
data.table
中的
i
表达式轻松地进行子集设置。例如:

cpm["dysglyc"]  # Pull everything dysglyc
cpm[J("dysglyc", "A1")]  # Pull everything group=dysglyc and timepoint=A1
cpm[J("dysglyc", "A1"), gene]  # Use column gene within this subset etc.

您可以开始使用
data.table
“vignette('data.table')
”中的vignette。如果您有一个大数据集,需要执行一系列groupby或split-apply-combine操作,那么该包将是一个额外的奖励。

使用hust one即可。请尝试
cpm[cpm$group==“dyglyc”&cpm$timepoint==“A1”,“gene”]
单独运行每个条件表达式非常有用,可以查看整个表达式的哪个部分未按预期工作。运行
cpm$group==“dysgyc”
cpm$timepoint==“A1”
cpm$group==“dysgyc”&&cpm$timepoint==“A1”
,查看它们是否返回您期望的逻辑向量。当你想发帖提问时,请不要只说“它不起作用”——你应该描述发生了什么,以及你期望的是什么。一个可复制的例子也可以帮助我们帮助你。我简直不敢相信,我一定是打错了什么东西,它只能用一个&我已经找了很长时间了!非常感谢。