如何在R中添加一个新的因素
how to add a new factor in R
我有一个数据框:
a <- c("",1,2,3,2,2,1,3,"")
b <- c(1,2,3,4,5,3,8,2,8)
a1 <- as.factor(a)
f <- data.frame(x=a1,y=b)
f
x y
1 1
2 1 2
3 2 3
4 3 4
5 2 5
6 2 3
7 1 8
8 3 2
9 8
x 列是一个因子,但我想在空位置添加一个因子“0”,例如,我想使用 if(is.na(f$x)) f$x <- 0
,但它显示警告:
Warning message:
In if (is.na(f$x)) f$x 1 and only the first element will be used
我使用:
for(i in 1:nrow(f)){
if(is.na(f$x[i])){
f$x[i] <- 0
}
}
但它与 do.How 无关,我可以解决这个问题吗?感谢您的帮助!
您不需要 for 循环,更快的方法是
a <- c("",1,2,3,2,2,1,3,"")
> b <- c(1,2,3,4,5,3,8,2,8)
> a1 <- as.factor(a)
> f <- data.frame(x=a1,y=b)
>
> f$x <- ifelse(f$x=="",0,f$x)
> f$x
[1] 0 2 3 4 3 3 2 4 0
> f$x <- as.factor(f$x)
> str(f)
'data.frame': 9 obs. of 2 variables:
$ x: Factor w/ 4 levels "0","2","3","4": 1 2 3 4 3 3 2 4 1
$ y: num 1 2 3 4 5 3 8 2 8
我有一个数据框:
a <- c("",1,2,3,2,2,1,3,"")
b <- c(1,2,3,4,5,3,8,2,8)
a1 <- as.factor(a)
f <- data.frame(x=a1,y=b)
f
x y 1 1 2 1 2 3 2 3 4 3 4 5 2 5 6 2 3 7 1 8 8 3 2 9 8
x 列是一个因子,但我想在空位置添加一个因子“0”,例如,我想使用 if(is.na(f$x)) f$x <- 0
,但它显示警告:
Warning message: In if (is.na(f$x)) f$x 1 and only the first element will be used
我使用:
for(i in 1:nrow(f)){
if(is.na(f$x[i])){
f$x[i] <- 0
}
}
但它与 do.How 无关,我可以解决这个问题吗?感谢您的帮助!
您不需要 for 循环,更快的方法是
a <- c("",1,2,3,2,2,1,3,"")
> b <- c(1,2,3,4,5,3,8,2,8)
> a1 <- as.factor(a)
> f <- data.frame(x=a1,y=b)
>
> f$x <- ifelse(f$x=="",0,f$x)
> f$x
[1] 0 2 3 4 3 3 2 4 0
> f$x <- as.factor(f$x)
> str(f)
'data.frame': 9 obs. of 2 variables:
$ x: Factor w/ 4 levels "0","2","3","4": 1 2 3 4 3 3 2 4 1
$ y: num 1 2 3 4 5 3 8 2 8