我有两种数据类型的类型列表和类型字符公司
price
[[1]]
[1] "Rp 83.000"
[[2]]
[1] "Rp 87.900"
[[3]]
[1] "Rp92,000"
[[4]]
[1] "Regular price 125,000.00 Discount price 125,000.00 "
和
company
[1] "Tororo" "Babyzania" "Bilna" "Babylonish"
我想使用两种数据类型和形式创建数据框:
Tororo Rp 83.00
Babyzania Rp 87.900
Bilna Rp 92,00
Babylonish正常价格125,000.00折扣价125,000.00
任何人都可以帮助我,我尝试直接使用
df=data.frame(company,price)
但它没有提供我想要的正确数据帧。
答案 0 :(得分:3)
您可以使用此方法:
数据:
price <- list("Rp 83.000", "Rp 87.900", "Rp92,000",
"Regular price 125,000.00 Discount price 125,000.00 ")
company <- c("Tororo", "Babyzania", "Bilna", "Babylonish")
使用正则表达式创建价格字符串:
price2 <- sub(".*?([0-9.,]+) *$", "Rp \\1", unlist(price))
# [1] "Rp 83.000" "Rp 87.900" "Rp 92,000" "Rp 125,000.00"
创建数据框:
data.frame(company, price = price2)
# company price
# 1 Tororo Rp 83.000
# 2 Babyzania Rp 87.900
# 3 Bilna Rp 92,000
# 4 Babylonish Rp 125,000.00
答案 1 :(得分:1)
如果您的列表与公司名称矢量的长度和顺序完全相同,则可以执行此操作
df = data.frame(company, unlist(price))
你的第四个价格与前3个非常不同,所以你不会得到你打印的东西。