【问题标题】:Get the length of the list stored in a column of data.frame获取存储在data.frame列中的列表长度
【发布时间】:2014-04-28 16:37:09
【问题描述】:

我将字符串列表存储在 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", "generated"] 属于 "list" 类,但不是 length(df['4', "generated" ]) 为 180,它显示 1。

请问如何获得真实的列表长度?

更新: 我像这样从 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>]
    } 
}

【问题讨论】:

  • 您是否正在寻找length(df[["generated"]][[4]])?你能发布一些示例数据吗?
  • @AnandaMahto 请查看更新后的问题

标签: r


【解决方案1】:

试试:

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

如果这适用于“生成”列中的每个列表:

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

【讨论】:

  • 您的建议确实有效。我是否可以假设每个列条目都是字符串列表的列表?如何将其转换为列内的常规字符串列表?
猜你喜欢
  • 2014-03-16
  • 2022-11-14
  • 2013-12-07
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 2013-01-24
  • 1970-01-01
  • 2015-11-20
相关资源
最近更新 更多