【发布时间】:2022-01-08 13:27:18
【问题描述】:
您好,我应该创建一个接受三个参数的函数“check_even” (1) 'df' 一个数据框 (2) 'col_test' 测试指示列中的每一行值是偶数还是奇数。使用 for 循环和 nrow 函数。 (3) 'col_multiply' 如果 'col_test' 为偶数,则乘以 2,如果 'col_test' 为奇数,则乘以 3
- 将结果存储在“df”调用“res”中的新列中,并返回整个数据帧“df”
- 通过运行此代码“check_even(df_test, 'INT1', 'INT2')'来测试您的函数
df_test = data.frame(INT1 = c(1:10), INT2 = (sample(x = c(20:100),size = 10, replace = F)))
df_test
check_even = function(df, col_test, col_multiply){
for(i in 1:nrow(df)){
if((df[,col_test[i]] %% 2) == 0){
df[,'res'] = (df[,col_multiply[i]] * 2)
} else
{
df[,'res'] = (df[,col_multiply[i]] * 3)
}
return(df) }
}
check_even(df_test, 'INT1', 'INT2')
我不断得到所有值乘以 3 的结果。我可以寻求帮助以查看我的代码有什么问题吗?
【问题讨论】:
标签: r function for-loop if-statement