我有一个列有酒店房间床位的专栏,但我想知道有多少人可以在这个房间里睡觉。我的数据集如下所示:
nrofP
2||2
3||3
1
6
1||1
2||2||2||2||2
5
2||2||1
我的预期结果是:
nrofP
4
6
1
6
2
10
5
5
我希望您可能知道解决问题的方法。
答案 0 :(得分:1)
library(lazyeval)
df <- data.frame(nrofP = c("2||2", "3||3", "1", "2||2||1"), stringsAsFactors = F)
df$nrofP <- lapply(gsub("||", "+", df$nrofP, fixed = T), function(x) lazy_eval(x))
答案 1 :(得分:1)
将nrofP视为向量。
sapply(nrofP,function(x) sum(as.numeric(unlist(strsplit(gsub('\\|\\|',' ',x),' ')))))
答案 2 :(得分:1)
rooms <- c("2||2", "3||3","1", "6", "1||1", "2||2||2||2||2",
"5","2||2||1")
occupancy <- do.call("c", lapply(strsplit(rooms, "\\|\\|"), function(x)
{
sum(as.numeric(x))
}))
occupancy