[英]R — unembedding a list of lists from a data.frame column
我有一个带有两列的data.frame,如下所示:
sid calibration
sid201 [['left', '37.1', '18.9', '0.0', '0.9\xb0', '0.4\xb0'], ['right', '42.2', '24.0', '0.0', '1.0\xb0', '0.6\xb0']]
sid202 [['left', '7.4', '13.6', '0.0', '0.2\xb0', '0.3\xb0'], ['right', '14.6', '15.1', '0.0', '0.3\xb0', '0.4\xb0']]
以此类推。
我遇到的问题是弄清楚如何从“校准”列中提取所需的信息。
我想将“校准”因子解析为两行,其中“左”和“右”是新因子“眼”的级别,其他5个元素中的每一个都分配给自己的列-简单地说a:e
如果按照您说的那样存储数据,则可以对名为df的data.frame尝试以下操作:
# stack the data
dfStacked <- data.frame("sid"=c(df$sid, df$sid),
"calibration"=c(sapply(df$calibration, function(i) c(i[[1]])),
sapply(df$calibration, function(i) c(i[[2]]))))
# split the data vectors
calibList <- strsplit(dfStacked$calibration, split=", ")
# put the results into a data.frame, loops through variables in outer loop
# loops through observations in inner row to get variables
results <- as.data.frame(sapply(1:5,
function(element) cbind(sapply(calibList, function(row) c(row[[i]])))))
# add to dataset
dfDone <- cbind(dfStacked$sid, results)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.