Reputation: 78
If some data frame which contains values like
a
1
5
7
9
data frame b needs to be extracted from data frame a like
If a is less than equals to 10 than b is 1:10
If a is less than equals to 14 than b is 11:14
If a is less than equals to 29 than b is 15:29
and the result should reflect like
b
1
2
3
4
5
6
7
8
9
10
Any leads will be appreciated
Upvotes: 1
Views: 55
Reputation: 887058
We can try
f1 <- function(x){
v1 <- max(x)
v2 <- if(v1 < 10) 1:10 else if(v1 < 14) 11:14 else 15:29
data.frame(b = v2)
}
f1(df1$a)
# b
#1 1
#2 2
#3 3
#4 4
#5 5
#6 6
#7 7
#8 8
#9 9
#10 10
Upvotes: 3
Reputation: 3812
Did you want all the values of a
less than 10 then b = 1:10
, if all the values of a
less than 14 then b = 11:14
and if all the value of a
less than 29 then b = 15:29
: Please check the code below for details
df <- data.frame(a = c(1,5,7,9))
if (sum(df$a < 10) == nrow(df)) {
b = data.frame(1:10)
} else if (sum(df$a < 14) == nrow(df)) {
b = data.frame(11:14)
} else if (sum(df$a < 29) == nrow(df)) {
b = data.frame(15:29)
}
Out of above code is:
> b
X1.10
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
Hope this will help you, otherwise let me know your exact requirements.
Upvotes: 3