【发布时间】:2014-11-02 07:18:38
【问题描述】:
我有一个包含 1000 行和 848 个级别的因子(即有些行是空的)。对于每一行,我想计算元素的数量(即一个元素 = 1、2 个元素 = 2、空行 = 0 等)。一种更简单的描述方式是:我想将一个因子转换为 data.frame,但我想将数据类型从因子更改为数字并保留每一行中的值。
v.m.two <- Output[,1]
v.m.two <- data.frame(v.m.two)
class(v.m.two)
[1] data.frame
class(v.m.two[1,]
[1] factor
dim(v.m.two)
[1] 1000 1
v.m.two[1,]
[1] 848 Levels: 0 1000 1002, 4875, 4082, 1952 1015, 2570, 3524 1017 1020, 1576 ... 983, 4381,
2256, 4361, 4271
有什么建议吗?
v.m.two
1 2633, 4868
2 126, 4860
3 0
4 122, 4762
5 4256
6 2933, 2892, 2389
基本上,我想计算每一行中的值(例如,第 1 行是 2,第 2 行是 2,第 3 行是 0,等等)。
【问题讨论】:
-
你能显示几行
v.m.two吗?您可能还想使用v.m.two <- data.frame(v.m.two, stringsAsFactors = FALSE) -
“计算元素个数”是什么意思?每行只有一个值。你只想要
as.numeric(as.character(v.m.two[, 1]))吗? -
嘿,理查德,我在原始帖子中进行了编辑。我已经尝试过了,但它并没有按照预期的方式工作。我不确定为什么>.>
-
好吧,也许你想要
sapply(strsplit(as.character(v.m.two[, 1]), ','), length) -
嘿 jbaums,因为数据类型是一个因素,所以你是正确的,因为每一行都包含一个值。但在每一行中,都包含一个由“,”分隔的元素列表,我想计算这些值。
标签: r