R中for循环之后的数据帧没有差异
我是Stackoverflow新手,还没有找到一个可以回答我问题的主题,所以我现在就把它贴在这里 我试图将数据帧中的是/否字符更改为整数1和2。我只想为45个科目中的4个做这个。我想使用ifelse语句进行for循环来实现这一点。这个循环一开始似乎是有效的,但是当我打开数据框或者用head(数据)查看时,数据框中没有任何变化 数据框称为“gatingdata”,列称为“correct_buttonBox” 这就是我所做的:R中for循环之后的数据帧没有差异,r,dataframe,for-loop,if-statement,R,Dataframe,For Loop,If Statement,我是Stackoverflow新手,还没有找到一个可以回答我问题的主题,所以我现在就把它贴在这里 我试图将数据帧中的是/否字符更改为整数1和2。我只想为45个科目中的4个做这个。我想使用ifelse语句进行for循环来实现这一点。这个循环一开始似乎是有效的,但是当我打开数据框或者用head(数据)查看时,数据框中没有任何变化 数据框称为“gatingdata”,列称为“correct_buttonBox” 这就是我所做的: ffor row in 1:nrow(gatingdata$correc
ffor row in 1:nrow(gatingdata$correct_buttonBox)) {
if (gatingdata$subject_nr == "19") {
ifelse(gatingdata$correct_buttonBox=="no", 1, 2)
} if (gatingdata$subject_nr == "27") {
ifelse(gatingdata$correct_buttonBox=="no", 1, 2)
} if (gatingdata$subject_nr == "35") {
ifelse(gatingdata$correct_buttonBox=="no", 1, 2)
} if (gatingdata$subject_nr == "42") {
ifelse(gatingdata$correct_buttonBox=="no", 1, 2)
}
}
我也尝试过:
for(row in 1:nrow(gatingdata$correct_buttonBox)) {
which[(gatingdata$subject_nr == "19"),] {
ifelse(gatingdata$correct_buttonBox=="no", 1, 2)
} which[(gatingdata$subject_nr == "27"),] {
ifelse(gatingdata$correct_buttonBox=="no", 1, 2)
} which[(gatingdata$subject_nr == "35"),] {
ifelse(gatingdata$correct_buttonBox=="no", 1, 2)
} which[(gatingdata$subject_nr == "42"),] {
ifelse(gatingdata$correct_buttonBox=="no", 1, 2)
}
}
我还尝试使用“I in 1:length(data$column)”。也不管用
如果有人能告诉我我做错了什么,我会非常感激的!我在网上搜索中找不到任何与我的问题相关的信息,我已经尝试解决这个问题好几个小时了。这是循环的第7或第8个版本,但对我来说,这似乎是最符合逻辑的
最好的
M.H.一些问题:
ifelse
调用的结果存储在任何位置subject=='42'
,而不是subject==42
),但从您的示例中不清楚这是否正确。请使用str(gatingdata)
检查数据的格式
subjects <- gatingdata$subject %in% c('19', '27', '35', '42') # logical vector of subjects of interest
yes <- gatingdata$correct_buttonBox == 'yes' # logical vector of 'yes' responses
no <- gatingdata$correct_buttonBox == 'no' # logical vector of 'no' responses
gatingdata$correct_buttonBox[subjects & yes] <- '2' # recode yes's
gatingdata$correct_buttonBox[subjects & no] <- '1' # recode no's
主题你根本没有在for
循环中使用行
…语法上有点混乱,我会花一些时间来学习如何构造for循环和if-else语句。你也使用了哪个
错误。你能编辑你的答案以包含dput(head(gatingdata,50))的输出吗
?这将让我们看到您的数据集的前50行,这将使帮助变得更加容易。非常感谢大家的回答!我现在确实在没有for循环的情况下解决了这个问题!我发现循环比我的主管预期的要复杂一些。我在我的大学找到了s.b.,他将为我举办更多的研讨会统计方法,我会参加的!非常感谢你快速而有用的回答!循环是一位主管的建议……我会试试你的建议!对我来说,它似乎更具可追溯性和逻辑性!我唯一不明白的是,我如何在我的数据框内进行更改?我必须将所有这些都嵌套在数据框内吗应用函数?有许多方法可以访问和修改数据帧的内容。请尝试键入?$“如果我使用您发布的代码执行此操作,则我的数据帧中不会发生任何事情。它看起来仍然像以前一样。可能还有另一个问题。