在R中,我采用了测试结果的JSON格式,并将其转换为包含14个变量和1101个条目的数据框。在此测试中,用户必须按特定顺序选择正方形以获得正确分数。在一个变量“输入”下,值是长字符串,其中包含有关选择哪个正方形以及选择正方形所花费的时间的信息。
例如:
"[{\"selectedSquare\":\"1\",\"tapTime\":\"00:00:00:06\"},
{\"selectedSquare\":\"0\",\"tapTime\":\"00:00:01:02\"},
{\"selectedSquare\":\"3\",\"tapTime\":\"00:00:02:00\"},
{\"selectedSquare\":\"2\",\"tapTime\":\"00:00:02:07\"}]"
有些条目比其他条目更多,有些则没有。
我需要在每个条目中搜索学生选择的正方形,然后将订单输出到新列中。使用上面的示例: 1,0,3,2
我尝试单独访问每个条目以使用df$input[1]
测试功能,但是它返回的因子为219级。我找不到只访问输入条目的相关部分的方法。
答案 0 :(得分:0)
您可以通过使用适当的正则表达式来做到这一点。试试:
library(dplyr)
library(stringr)
pattern <- "(?<=\")\\d(?=\")" ## regular expression with look arounds
df$new.col <- sapply(df$input, function(x) {str_extract_all(x, pattern)[[1]] %>% paste(collapse = ",")})