如何将R语言中data$Floor列拆分为楼层与总楼层两列
拆分包含"out of"的楼层列成两列
你可以用两种简单的方法实现需求,推荐用tidyr包的separate()函数一步到位:
方法一:tidyr 简洁实现
# 加载tidyverse(包含tidyr) library(tidyverse) # 处理你的数据集 data <- data %>% separate(Floor, into = c("Floor", "Total Floors"), sep = " out of ", convert = TRUE)
sep = " out of "指定拆分的分隔符convert = TRUE自动将Total Floors转换为数值类型,方便后续统计分析
方法二:基于你原思路的拓展
如果你想沿用替换分隔符的思路,可以继续用字符串拆分完成:
# 替换"out of"为空格 data$Floor_temp <- str_replace_all(data$Floor, "out of", " ") # 按空格拆分并转为数据框 split_result <- strsplit(data$Floor_temp, "\\s+") %>% do.call(rbind, .) %>% as.data.frame(stringsAsFactors = FALSE) %>% setNames(c("Floor", "Total Floors")) # 合并到原数据集并清理临时列 data <- cbind(data, split_result) %>% select(-Floor_temp, -Floor) %>% # 移除原Floor列和临时列 relocate(Floor, `Total Floors`) # 调整列顺序
内容的提问来源于stack exchange,提问作者user19375357
相关产品推荐
相关产品推荐

