【发布时间】:2013-06-03 02:55:46
【问题描述】:
我正在分析一个 CSV 文件的实验结果,其中变量作为列,参与者作为行。在收集所有数据之前,我想对已有的数据进行初步分析。但是,我需要将我的一些参与者排除在分析之外。在不删除他们的数据(这可能会在以后给我带来问题)的情况下,我想出的最佳方法是创建一个新列,将其称为“排除”,然后为每个参与者输入 1 或 0 来定义谁将被排除在外。然后,当我运行统计信息时,我只对我的数据子集执行此操作(例如,其中 exclude == 0)。
当我下载完整的数据集时,问题就出现了 - 我如何从初步数据集的“排除”列中获取数据到完整的数据集中,确保所有的 0 和 1 都附加到正确的参与者?如果初步数据集和完整数据集的行的顺序完全相同,我可以看到如何复制和粘贴,但这似乎容易出错,并且为了创建排除列,按不同的列排序要容易得多.我试过rbind 和merge,但据我所知,它们不起作用。
这是我正在尝试做的一个示例:
prelim <- data.frame(
participant = c(1,2,3),
exclude = c(0,1,0)
)
full = data.frame(
participant = c(1,2,3,4,5),
exclude = c(NA,NA,NA,NA,NA)
)
ideal = data.frame(
participant = c(1,2,3,4,5),
exclude = c(0,1,0,NA,NA)
)
【问题讨论】:
-
我猜测(在没有示例的情况下)您遇到的问题源于使用
attach。如果您停止使用attach而是使用with、subset和[,您将摆脱attach创造的特殊可能性所造成的巨大混乱。 -
听从 @DWin 的建议,但如果没有可重复的示例 (stackoverflow.com/questions/5963269/…),就不可能更有帮助
-
感谢您的回复。我在上面包含了一个简化的示例,其中 NA 为空白。 Dwin,我没有使用附加。在内部,当我尝试合并功能时,它会制作所有列的 2 个副本,而我希望所有列保持不变。我无法用 %in% 弄清楚您的代码 - 我从未使用过该运算符。也许使问题复杂化的是,我通过手动输入数据在 excel 中创建排除列,而不是使用 if 或 ifelse 在 R 中创建列。这可能是解决问题的方法吗?
-
不过,最好不要在 R 中编写“排除”标准来找出一种方法,因为有时我需要根据我必须单独评估的书面回复来排除人员。跨度>
标签: r csv dataset import-from-csv