如果r

时间:2019-06-24 20:45:22

标签: r

在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级。我找不到只访问输入条目的相关部分的方法。

1 个答案:

答案 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 = ",")})