我在R中有一个数据集,它是这样的格式:
| 公司名称|提交数据| submitted_data |
| --|--| ------------ |
| 鲍勃公司|{“dob”:2002-03-04,“tel”:|1234} 1234} |
| 法德拉公司|空值| NULL |
| 安德鲁公司|{“dob”:1999-10-10,“industry”:|零售} retail} |
我希望将“submitted_data”列中的数据提取到单独的列中,使用相应的值并保留NULL,例如上面应该看起来像这样:
| 公司名称|多卜|泰尔|工业| industry |
| --|--|--|--| ------------ |
| 鲍勃公司|2002-03-04|一二三四|零| null |
| 法德拉公司|空值|空值|空值| NULL |
| 安德鲁公司|1999年10月10日|零|零售| retail |
我知道我需要使用jsonlite包,但到目前为止,它抛出了错误,不能得到任何地方。- 谢谢-谢谢
1条答案
按热度按时间eiee3dmh1#
本质上你的问题是你的列是not valid json:
除了数字、对象和数组之外,唯一允许的不带引号的实体是null、true、false。
我们可以使用模式
gsub(":(.*?)([,}])", ':"\\1"\\2', txt)
来替换:
的所有示例,然后用引号中的值替换该值(例如将"dob" : 2002-03-04
替换为"dob" : "2002-03-04"
)。我在这里使用了
dplyr::bind_rows()
,因为它是一种简单的方法来绑定一个json对象列表,这些对象的每行没有相同的键。字符串
输入数据:
型