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)

目前,我有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)
  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这样的特定列执行此操作