使用ifelse条件拆分R中的列

使用ifelse条件拆分R中的列,r,R,我有一个名为Rooms的列,其中包含以下数据: '4+1' '3+1' '3' '2' '3+2' '4' '1' '2+1' '2+2' '5+1' '1+1' '6+1' '7+1' '5' '6' '0' '4+2' '8' 我想将其拆分为两列,其中分隔符为+,为此,我执行了以下操作: splitingRoomsDF <- data.frame(do.call('rbind', strsplit(as.character(out$Rooms),'+',fixed=TRUE)),st

我有一个名为
Rooms
的列,其中包含以下数据:

'4+1' '3+1' '3' '2' '3+2' '4' '1' '2+1' '2+2' '5+1' '1+1' '6+1' '7+1' '5' '6' '0' '4+2' '8'
我想将其拆分为两列,其中分隔符为
+
,为此,我执行了以下操作:

splitingRoomsDF <- data.frame(do.call('rbind', strsplit(as.character(out$Rooms),'+',fixed=TRUE)),stringsAsFactors = FALSE)
当我把它打印出来时,我得到了:

上述输出的问题是,如果
房间
中有一个没有
+
定界符的单元格值,它会用该值替换
X1
X2
,如果
房间
没有
+
定界符,我希望
X2
的值为零。我不确定在这里使用if-else是否正确,但现在就使用它

那么,为了准确地进行更改,我应该在上面的代码行中更改哪些内容。


我已经使用了这个数据集:

您可以使用
tidyr::separate
它。处理得很干净:

splitingRoomsDF <- tidyr::separate(out, Rooms, into = c('Room1', 'Room2'), 
                sep = "\\+",remove = FALSE, convert = TRUE, fill = "right")

head(splitingRoomsDF[, 1:5])

#                           Location        Price Rooms Room1 Room2
#1                KLCC, Kuala Lumpur RM 1,250,000   2+1     2     1
#2   Damansara Heights, Kuala Lumpur RM 6,800,000     6     6    NA
#3             Dutamas, Kuala Lumpur RM 1,030,000     3     3    NA
#4              Cheras, Kuala Lumpur                       NA    NA
#5         Bukit Jalil, Kuala Lumpur   RM 900,000   4+1     4     1
#6 Taman Tun Dr Ismail, Kuala Lumpur RM 5,350,000   4+2     4     2

请尝试不要删除您的问题,然后再次发布并编辑它。这可能会激怒那些试图回答问题的人。
splitingRoomsDF <- tidyr::separate(out, Rooms, into = c('Room1', 'Room2'), 
                sep = "\\+",remove = FALSE, convert = TRUE, fill = "right")

head(splitingRoomsDF[, 1:5])

#                           Location        Price Rooms Room1 Room2
#1                KLCC, Kuala Lumpur RM 1,250,000   2+1     2     1
#2   Damansara Heights, Kuala Lumpur RM 6,800,000     6     6    NA
#3             Dutamas, Kuala Lumpur RM 1,030,000     3     3    NA
#4              Cheras, Kuala Lumpur                       NA    NA
#5         Bukit Jalil, Kuala Lumpur   RM 900,000   4+1     4     1
#6 Taman Tun Dr Ismail, Kuala Lumpur RM 5,350,000   4+2     4     2
splitingRoomsDF[4:5][is.na(splitingRoomsDF[4:5])] <- 0