我有一份这样的数据:
descriptionin = c("sample1","sample1","sample1","sample1","sample1","sample1","sample1","sample1","sample2","sample2","sample3","sample3","sample3","sample3","sample3","sample3")
dilutionin = c(1,10,100,1000,1,10,100,1000,5,5,2,8,32,2,8,32)
conditionin = c("cond1","cond1","cond1","cond1","cond2","cond2","cond2","cond2","cond1","cond2","cond1","cond1","cond1","cond2","cond2","cond2")
testin <- data.frame(descriptionin,dilutionin,conditionin)
并且希望将dataframe划分为:
descriptionout = c("sample1","sample1","sample1","sample1","sample1","sample1","sample1","sample1","sample3","sample3","sample3","sample3","sample3","sample3")
dilutionout = c(1,10,100,1000,1,10,100,1000,2,8,32,2,8,32)
conditionout = c("cond1","cond1","cond1","cond1","cond2","cond2","cond2","cond2","cond1","cond1","cond1","cond2","cond2","cond2")
testout <- data.frame(descriptionout,dilutionout,conditionout)
为了解释,我想通过每个唯一的描述/条件组合对数据进行子集,这些组合有一个以上的数字(在本例中是1,但实际的数据集将是3)稀释。
谢谢
发布于 2017-05-03 08:21:15
一种选择是data.table
。将“data.frame”转换为“data.table”(setDT(testin)
),按“descriptionin”和“conditionin”分组,我们在组中找到具有多个unique
‘稀释’的元素的行索引(.I
),并使用该索引对行进行子集。
library(data.table)
setDT(testin)[testin[, .I[uniqueN(dilutionin)>1], .(descriptionin, conditionin)]$V1]
https://stackoverflow.com/questions/43765309
复制相似问题