gpt4 book ai didi

r - 如何编写 R 脚本来检查直线;即,对于任何给定的行,一组列中的所有值是否都具有相同的值

转载 作者:行者123 更新时间:2023-12-05 00:18:21 24 4
gpt4 key购买 nike

我想创建一个二分变量,告诉我参与者是否对 10 个问题中的每一个都给出了相同的回答。每一行都是一个参与者,我想编写一个简单的脚本来在我的数据框中创建这个新变量/向量。例如,如果我的数据看起来像前 6 列,那么我正在尝试创建第 7 列。

ID   Item1  Item2  Item3  Item4  Item5  | AllSame
1 5 5 5 5 5 | Yes
2 1 3 3 3 2 | No
3 2 2 2 2 2 | Yes
4 5 4 5 5 5 | No
5 5 2 3 5 5 | No

我在这组中看到过将一列与另一列进行比较的解决方案,例如这里使用 ifelse(data$item1==data$item2,1,ifelse(dat$item1==data$item3,0,NA)) ,但我的实际数据集中有 10 列,我认为必须有比相互检查所有 10 列更好的方法。我也可以创建一个变量来计算有多少等于 1,然后测试计数是否与列数相同,但是数据中有 7 个可能的响应,这看起来非常难看,我是希望有人有更好的解决方案。谢谢!

最佳答案

有很多方法可以做到这一点,但这里有一个

mydf <- data.frame(Item1 = c(5,1,2,5,5), 
Item2 = c(5,3,2,4,2),
Item3 = c(5,3,2,5,3),
Item4 = c(5,3,2,5,5),
Item5 = c(5,3,2,5,5) )

mydf$AllSame <- rowMeans(mydf[,1:5] == mydf[,1]) == 1

这导致
> mydf
Item1 Item2 Item3 Item4 Item5 AllSame
1 5 5 5 5 5 TRUE
2 1 3 3 3 3 FALSE
3 2 2 2 2 2 TRUE
4 5 4 5 5 5 FALSE
5 5 2 3 5 5 FALSE

如果你真的必须有"is"和“否”,那么使用类似的东西
mydf$AllSame <- ifelse(rowMeans(mydf[,1:5] == mydf[,1]) == 1, "Yes", "No")

关于r - 如何编写 R 脚本来检查直线;即,对于任何给定的行,一组列中的所有值是否都具有相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37980536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com