向“for”传递了四个参数,而“for”循环需要三个参数

5uzkadbs  于 2023-02-10  发布在  其他
关注(0)|答案(1)|浏览(276)

我正尝试在df“myfile”中添加一个新列currency。
该列的内容是有条件的,例如如果year列满足此条件,则新列具有此值,否则具有另一个值。
当我尝试不带循环的 if else 时,它显示〉1,所以我猜测 if else 不能用于包含多个元素的向量,我可以使用 for 循环,但随后显示了以下错误:

myfile$currency <- myfile %>% for (i in year) {if(year>2000){print("Latest")}else{"Oldest"}}
Error in for (. in i) year : 4 arguments passed to 'for' which requires 3
y53ybaqx

y53ybaqx1#

您可以在mutate中使用ifelse。请参阅dpylr的文档。

library(dplyr)
myfile <- myfile %>%
mutate(
  currency = ifelse(year > 2000, "latest", "oldest")
)

如果您有更多条件,请参见case_when
或者你可以这样做:

myfile$currency[myfile$year > 2000] <-  "latest"
myfile$currency[myfile$year <= 2000] <-  "oldest"

相关问题