我有两个数据框:
my.data.1
AIRLINE STORES
[1] 500 100
[2] 300 200
my.data.2
AIRLINE STORES
33% 50 25
67% 150 65
我想通过从my.data.1的列中获取每个值进行比较来创建一个新的数据框,并检查它是否大于或小于my.data中相应列的值或在其之间。 2
例如:
my.data.1[1, 'AIRLINE'] < my.data.2['33%', 'AIRLINE'] = 'LOW'
my.data.1[1, 'AIRLINE'] > my.data.2['67%', 'AIRLINE'] = 'HIGH'
my.data.1[1, 'AIRLINE'] >= my.data.2['33%', 'AIRLINE'] &&
my.data.1[1, 'AIRLINE'] <= my.data.2['67%', 'AIRLINE'] = 'MED'
这样我将获得看起来像这样的数据名声
AIRLINE STORES
[1] HIGH HIGH
[2] HIGH HIGH
答案 0 :(得分:0)
您的问题不是很清楚。尝试以下方法是否适合您:
df1 <- data.frame(AIRLINE = c(500, 300),
STORES = c(100, 200))
df2 <- data.frame(AIRLINE = c(50, 150),
STORES = c(25, 65))
getScore <- function(x, y) {
ifelse(x < y[1], "LOW",
ifelse(x > y[2], "HIGH", "MED"))
}
df3 <- df1
df3$AIRLINE <- sapply(df1$AIRLINE, getScore, df2$AIRLINE)
df3$STORES <- sapply(df1$STORES, getScore, df2$STORES)
df3
AIRLINE STORES
1 HIGH HIGH
2 HIGH HIGH