【发布时间】:2019-12-06 12:05:46
【问题描述】:
我是 Stackoverflow 的新手,还没有找到可以回答我问题的主题,所以我现在在这里发布!
我正在尝试将数据框中的是/否字符更改为整数 1 和 2。我只想对 45 个主题中的四个这样做。我想使用 ifelse 语句进行 for 循环来执行此操作。该循环起初似乎可以工作,但是当我打开它或查看 head(data) 时,我的数据框没有任何变化。
数据框称为“gatingdata”,列称为“correct_buttonBox”。
这就是我所做的:
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.
【问题讨论】:
-
您根本没有在
for循环中使用row.... -
语法上这有点乱,我需要一些时间来学习如何构造 for 循环和 if else 语句。你也用错了
which。 -
您能否编辑您的答案以包含
dput(head(gatingdata, 50))的输出?这将使我们看到您的数据集的前 50 行,这将更容易提供帮助。 -
非常感谢大家的回答!我现在确实在没有 for 循环的情况下解决了它!我发现循环比我的主管对我的预期要复杂一些。我找到了 s.b.在我的大学里,他将举办更多关于统计方法的研讨会,我将参加!
标签: r dataframe for-loop if-statement