簡體   English   中英

為SparkR R映射

[英]mapply for SparkR R

我有一個帶有標題的Spark數據框“ a”,如下所示

 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

並將其作為新列添加到數據框

當不涉及Spark時,我可以使用mapply進行此操作。 但是如何在SparkR中執行此操作?

您只需使用ifelse語句就可以做到這一點

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM