有没有人有关于如何从基于存储在第二个数据集中的元数据中提取数据集中的列的建议?只是想知道是否有一种相对直接的方式(例如使用“colnames”或“subset”)。我的原始数据集非常大,有超过100列和30,000多行。打开文件并在Excel中选择是一件痛苦的事情。基于第二个数据集中的元数据提取数据集中的数据
这里有两个示例数据集:
set1 <- data.frame(ID = rnorm(5, 5000, 1000), Sample1 = rnorm(5, 50000, 2500),
Sample2 = rnorm(5, 50000, 2500), Sample3 = rnorm(5, 50000, 2500),
Sample4 = rnorm(5, 50000, 2500), Sample5 = rnorm(5, 50000, 2500))
meta.data <- data.frame(Sample_name = c("Sample1", "Sample2", "Sample3",
"Sample4", "Sample5"), Location = c("Loc1", "Loc2", "Loc3", "Loc1", "Loc1"),
Time = c("M0", "M01", "M02", "M02", "M03"),
Conc = c("lo", "hi", "lo", "lo", "lo"))
(1)我怎么能提取物(作为一个新的数据集)的位置LOC1所有样品或时间M02所有样本? (2)我如何提取具有特定ID号码的行,并只选择该行中具有Conc“lo”的那些样本?
太棒了!谢谢!还没有尝试用真实的数据集,但我可以复制你的方法与另一个虚拟数据集。但是,set1 $ ID ==“idnum1”不起作用(将IDnum1替换为出现ID列的数字时)。 set1 $ ID [X] works(X is a row number) – Dalmuti71 2012-07-15 02:41:14
请注意,示例data.frame中的数据具有浮点数,因此在R中显示为“3836.499”的ID实际上是“3836.49897995278”。如果您的真实ID是文本或没有小数的数字,代码应该可以正常工作。 – thelatemail 2012-07-15 02:43:52
@thelatemail:这些是小数已知的R陷阱,类似地,秒精度,:*'options('digits'= n)'* *'options('digits.secs'= n)'*; [这些常见问题都经常出现](http://stackoverflow.com/questions/11494188/zoo-objects-and-millisecond-timestamps)。 – smci 2012-07-15 20:38:44