2014-04-28 141 views
0

我将字符串列表存储在data.frame的列中,我想要获取这些列表的长度。获取存储在一列data.frame中的列表的长度

> class(df['4', "generated"]) 
[1] "list" 
> summary(df['4', "generated"]) 
    Length Class Mode  
4 180 -none- character 
> length(df['4', "generated"]) 
[1] 1 

如上所示DF [ “4”, “生成”]是 “列表” 类的,但不是长度的预期结果(DF [ '4', “生成”])为180它显示1.

我如何获得真正的列表长度?

UPD: 我创建JSON这样的数据帧:

data <- fromJSON("out.json") 
matrix <- cbind(id=names(data), t(rbind(sapply(data, "c")))) 
df <- data.frame(matrix) 

和数据看起来是这样的:

{ "4": 
    { "generated: 
     ["00A1CD093DB15425310C2BB57CB88BA460C87E5B26BAB3867D26870914E80603", 
     "018BE455F4A178A33517E3586AF115C9DF7356895B9A7416AD8D20D660B0866D", 
     "04C5893516CE5C3A6ADC907EC1484DE7542189E9AC7F138EE57DF088EF2F9D92", 
    <cut>] 
    } 
} 
+0

你可能在寻找'length(df [[“generated”]] [[4]]''?你能发布一些样本数据吗? – A5C1D2H2I1M1N2O1R2T1

+0

@AnandaMahto请参阅最新的问题 – skeptics

回答

0

尝试:

length(df['4', "generated"][[1]]) 

如果这工作对于“生成”列中的每个列表:

sapply(sapply(df[,"generated",drop=F],"[[",1),length) 
+0

您的建议实际上有效。我是否有权假定每一列条目都是一串字符串列表?我怎样才能将它转换为列内的常规列表? – skeptics

相关问题