【发布时间】:2020-05-29 21:03:13
【问题描述】:
目前正在使用具有各种参与者 ID 的更大数据框,如下所示:
#ASC_new Data Frame
Pcp Choice Target ASC Product choice_consis
2393 zwyn27soc B A 1 USB drive 0
2394 zwyn27soc B A 1 job 0
2395 zwyn27soc B B 1 USB drive 0
2397 zwyn27soc B A 1 printer 0
2399 zwyn27soc B B 1 walking shoes 0
2400 zwyn27soc B A 1 printer 0
我想尝试遍历每个参与者 (Pcp),并在“选择”列中查看他们的选择。例如,在两个产品“USB 驱动器”下,参与者选择了“B”(选择)。因此,在“choice_consis”下,我希望有一个 1 来代替 0,因为选择是一致的或相等的。虽然,我用于遍历参与者和产品名称的 for 循环不起作用:
#Examples/snippets of my values
pcp_list <- list("ybg606k3l", "yk83d2asc", "yl55v0zhm", "zwyn27soc")
product_list <- list("USB drive", "printer", "walking shoes", "job")
#for loop that isn't working
for (i in pcp_list){ #iterating through participant codes
for (j in product_list){ #iterating through product names
comparison <- filter(ASC_new, Pcp == i & Product == j) #filtering participant data and products into new dataframe
choice_1 <- ASC_new$Choice[1] #creating labels for choice 1 and 2
choice_2 <- ASC_new$Choice[2]
if (isTRUE(choice_1 == choice_2)){ #comparing choice 1 and choice 2 and adding value of 1 to Choice_consis column if they are equal
ASC_new$choice_consis[1] <- 1
ASC_new$choice_consis[2] <- 1
}
}
}
最后,我想要一个数据框,其中每个参与者的 choice_consis 都标有 1 或 0,表示他们是否在每个产品出现的时候都选择了相同的项目 (A,B,D)。
【问题讨论】:
-
请使用
dput显示示例,谢谢