R 如何使用变量创建循环
目前,我有4行用于4列上的简单ifelse。我在R是个新手,我怎么能在一行中做到这一点呢? 谢谢!:) 我试着在函数中这样做R 如何使用变量创建循环,r,R,目前,我有4行用于4列上的简单ifelse。我在R是个新手,我怎么能在一行中做到这一点呢? 谢谢!:) 我试着在函数中这样做 my_函数您可以使用列式应用: # Some data df <- data.frame(a = c(1,2,NA,4), b = c(NA,NA,7,8)) # Function for replacing NA with value myfun <- function(col) { out <- ifelse(is.na(col), 0, 1)
my_函数您可以使用列式应用:
# Some data
df <- data.frame(a = c(1,2,NA,4), b = c(NA,NA,7,8))
# Function for replacing NA with value
myfun <- function(col) {
out <- ifelse(is.na(col), 0, 1)
return(out)
}
# Applying function column-wise (option = 2)
apply(df, 2, function(col) myfun(col))
# As oneliner
apply(df, 2, function(col) ifelse(is.na(col), 0, 1))
#一些数据
df这里有一个使用dplyr
的解决方案,要自定义要转换的列,请使用mutate\u中的.vars参数:
library(“dplyr”,悄悄地=TRUE,warn.conflications=FALSE)
datamart_ApprentMessage此警告在每个会话中显示一次。
名称(数据集市信息)%
在(.vars=paste0(“VIE_OB3_3;”,1:4),.funs=function(x)ifelse(is.na(x),0,1))
#>#A tibble:5 x 4
#>人生3岁1岁人生3岁2岁人生3岁人生4岁
#>
#> 1 0 1 1 1
#> 2 1 0 1 1
#> 3 1 1 0 0
#> 4 0 1 0 1
#> 5 1 1 0 1
您可以使用sapply
,它将保留数据帧
结构。下面是一个示例,您可以将NA
替换为“值”
你可以用你自己的函数替换函数(x)ifelse
(我没有mutate
的经验,所以我没办法
此外,您可以使用[行,列]
仅选择特定的行/列:
df <- data.frame(a=c(1,2,NA,NA,5),b=c(NA,7,8,NA,10),c=c(NA,7,8,NA,10),d=c(NA,7,8,NA,10),e=c(NA,7,8,NA,10))
df
df[,c(1,2)] <- sapply(df[,c(1,2)],function(x)ifelse(is.na(x),"VALUE",x))
df
df欢迎使用SO!您能创建一个我们可以使用的最小值吗?您好!出于一般循环目的,我建议您了解sapply()
和lappy()
函数。您可以通过在R终端中键入help(“sapply”)
来获取有关它们的信息。此外,R还支持更基本的函数(For()
和while()
)或df[,c(“c”,“e”)]感谢您的回答,如果我想对r df这样的特定列执行此操作