首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >申请SparkR R

申请SparkR R
EN

Stack Overflow用户
提问于 2016-11-17 18:31:47
回答 1查看 92关注 0票数 0

我有一个"a“,头如下所示

代码语言:javascript
复制
 C1 | C2 | C3 | C4  
 I1 | 12 | 31 | 4  
 I2 | 14 | 32 | 13  
 I3 | 13 | 33 | 15  
 I4 | 16 | 29 | 25  
 I5 | 18 | 30 | 73  
 I6 | 17 | 36 | 19  

列2 (C2)总是小于C3

我想用以下逻辑将C4与C3和C2进行比较:如果C4介于C2和C3之间,则返回1,否则返回2

并将其作为新列添加到dataframe中。

当没有火种的时候,我可以用mapply做这件事。但是我如何在SparkR中做到这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-17 22:32:26

你应该只需要一个ifelse语句就能做到这一点。

代码语言:javascript
复制
df_a <- data.frame(C1 = c('I1', 'I2', 'I3', 'I4', 'I5', 'I6'),
                C2 = c(12, 14, 13, 16, 18, 17),
                C3 = c(31, 32, 33, 29, 30, 36),
                C4 = c(4, 13, 15, 25, 73, 19))

a <- as.DataFrame(df_a)
a$C5 <- ifelse(a$C4 > a$C2 & a$C4 < a$C3, 1, 2)
head(a)
  C1 C2 C3 C4 C5
1 I1 12 31  4  2
2 I2 14 32 13  2
3 I3 13 33 15  1
4 I4 16 29 25  1
5 I5 18 30 73  2
6 I6 17 36 19  1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40662460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档