使用变量在R中创建数据框

时间:2015-08-07 20:08:51

标签: r list dataframe

我有两种数据类型的类型列表和类型字符公司

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)

但它没有提供我想要的正确数据帧。

2 个答案:

答案 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个非常不同,所以你不会得到你打印的东西。