I'm storing lists of strings in a column of my data.frame and I want to get lengths of those lists.
> class(df['4', "generated"])
[1] "list"
> summary(df['4', "generated"])
Length Class Mode
4 180 -none- character
> length(df['4', "generated"])
[1] 1
As shown above df["4", "generated"] is of "list" class, but instead of expected result of length(df['4', "generated"]) being 180 it shows 1.
How do I get real list length, please?
UPD: I create data frame from JSON like this:
data <- fromJSON("out.json")
matrix <- cbind(id=names(data), t(rbind(sapply(data, "c"))))
df <- data.frame(matrix)
and data looks something like this:
{ "4":
{ "generated:
["00A1CD093DB15425310C2BB57CB88BA460C87E5B26BAB3867D26870914E80603",
"018BE455F4A178A33517E3586AF115C9DF7356895B9A7416AD8D20D660B0866D",
"04C5893516CE5C3A6ADC907EC1484DE7542189E9AC7F138EE57DF088EF2F9D92",
<cut>]
}
}
Try:
length(df['4', "generated"][[1]])
And if that works for every list in the "generated" column:
sapply(sapply(df[,"generated",drop=F],"[[",1),length)