相关疑难解决方法(0)

`%in%`和`==`之间的区别

df <- structure(list(x = 1:10, time = c(0.5, 0.5, 1, 2, 3, 0.5, 0.5, 
1, 2, 3)), .Names = c("x", "time"), row.names = c(NA, -10L), class = "data.frame")


df[df$time %in% c(0.5, 3), ]
##     x time
## 1   1  0.5
## 2   2  0.5
## 5   5  3.0
## 6   6  0.5
## 7   7  0.5
## 10 10  3.0

df[df$time == c(0.5, 3), ]
##     x time
## 1   1  0.5
## 7   7  0.5
## 10 10  3.0 …
Run Code Online (Sandbox Code Playgroud)

r

23
推荐指数
3
解决办法
2285
查看次数

我应该如何使用嵌套的ifelse语句?

我创建了一个包含以下数据的数据框

name <- c("A","B","C","D","E","F","G","H","I","J")
age <- c(22,43,12,17,29,5,51,56,9,44)
sex <- c("M","F","M","M","M","F","F","M","F","F")
rock <- data.frame(name,age,sex,stringsAsFactors = TRUE)
rock
Run Code Online (Sandbox Code Playgroud)

现在我想找出:

如果名称是E到J且性别不等于F则状态为"1F",如果名称为A到D且年龄大于15,则状态为"年轻".其他一切都是"他人"

所以,我正在申请以下代码:

rock$status <- ifelse(rock$name==c("E","F","G","H","I","J")& 
rock$sex!="F","1F",            
ifelse(rock$name==c("E","F","G","H","I","J")&rock$sex=="F","Fenamle",
ifelse(rock$name==c("A","B","C","D") & rock$age>15,"Young","Others")))
rock
Run Code Online (Sandbox Code Playgroud)

但我得到的输出如下:

  name  age    sex    status
1     A   22     M   Young   
2     B   43     F   Young   
3     C   12     M  Others  
4     D   17     M  Young   
5     E   29     M  Others  
6     F    5     F  Others  
7     G   51     F  Others  
8     H   56     M  Others 
9     I    9     F  Others  
10    J …
Run Code Online (Sandbox Code Playgroud)

r nested-if

2
推荐指数
2
解决办法
2169
查看次数

标签 统计

r ×2

nested-if ×1