【发布时间】:2019-07-21 19:45:03
【问题描述】:
我有两个具有不同 #s 观察值的数据框(一个很长,有 2220 个 obs,另一个很宽,有 37 个 obs)。数据帧共享变量“SID”,尽管在长数据帧中每个 SID 值有 60 行,而在宽数据帧中只有一个。宽数据帧有一个附加变量“Experimenter”,每个 SID 都有一个对应的 Experimenter 编号。我想在长数据框中创建一个“Experimenter”列,虽然每个 SID 有 60 个实例,但我希望每次 SID 值出现时添加并重复相应的 Experimenter 值(所以 60 次)。
每个主题的嵌套 if-else 命令似乎很乏味,所以我希望有替代方法
我已经添加了每个数据帧的 dput 输出,不幸的是,我不确定如何嵌入它们。现在在长数据框中,“SID”被命名为“主题”,但它们是同一个变量。
宽:
structure(list(SID = 7301:7302, Experimenter = c(2L, 1L)), .Names = c("SID",
"Experimenter"), class = "data.frame", row.names = c(NA, -2L))
长:
structure(list(Subject = c(7301L, 7301L, 7301L), Session = c(1L,
1L, 1L), Stimtype = structure(c(1L, 1L, 1L), .Label = "Control", class =
"factor"),
Valence = structure(c(1L, 1L, 1L), .Label = "Neutral", class = "factor"),
Block = c(1L, 1L, 1L), Image = c(12L, 17L, 22L), Group = structure(c(1L,
3L, 2L), .Label = c("Neutral_1660", "Neutral_5300", "Neutral_7233"
), class = "factor"), Response = c(1L, 1L, 1L), Stimulus = c(1660L,
7233L, 5300L)), .Names = c("Subject", "Session", "Stimtype",
"Valence", "Block", "Image", "Group", "Response", "Stimulus"), class =
"data.frame", row.names = c(NA,
-3L))
如果我们正在查看这些图像,我要做的就是在长数据框中插入“Experimenter”变量,只要“Subject”为“7301”(如在广泛的数据)等所有科目。
提前谢谢你。
【问题讨论】:
-
请以可复制、可复制和粘贴的格式包含示例数据和预期输出。截图从来都不是一个好主意。有关详细信息,请查看如何提供minimal reproducible example/attempt。
-
@MauritsEvers 谢谢,正在努力创建这些并更新帖子。