如何在r中添加组计数列?
我有一个数据框,其中每个id都可以重复,每一行都是一个事务,每个事务都列出了成本和大小。我想制作一个数据框,其中行是每个购买者的名称,行名称是成本,值是每个名称产生成本的次数。我可以把它做成一个表,但是我很难将这个表准确地转换成数据帧。我在其他程序中使用过崩溃,但在r中似乎无法正确使用。代码如下:如何在r中添加组计数列?,r,R,我有一个数据框,其中每个id都可以重复,每一行都是一个事务,每个事务都列出了成本和大小。我想制作一个数据框,其中行是每个购买者的名称,行名称是成本,值是每个名称产生成本的次数。我可以把它做成一个表,但是我很难将这个表准确地转换成数据帧。我在其他程序中使用过崩溃,但在r中似乎无法正确使用。代码如下: test.base <- data.frame( names=c("A", "B", "C", "C", "B", "C"), size
test.base <- data.frame(
names=c("A", "B", "C", "C", "B", "C"),
size =c(1, 2, 3, 4, 5, 6))
test.match<- data.frame(
names=c("A", "B", "C"),
cost =c(7, 8, 9))
test.merge<- merge(test.base, test.match)
#How do I make a new vriable in test-match that is the number of times
#the cost shows up in each variable to be three new columns ("7", "8", "9")?
table(test.merge$names, test.merge$cost)
根据您的编辑,您可能只是在查找as.data.frame.matrix: 请注意,第一列是行名,而不是实际列 其他选项包括使用unclass和data.frame或as.data.frame。前者将创建语法上有效的名称,必要时在名称前加上X,并将空格转换为点,以此类推:
> data.frame(unclass(table(test.merge$names, test.merge$cost)))
X7 X8 X9
A 1 0 0
B 0 2 0
C 0 0 3
> as.data.frame(unclass(table(test.merge$names, test.merge$cost)))
7 8 9
A 1 0 0
B 0 2 0
C 0 0 3
根据您的编辑,您可能只是在查找as.data.frame.matrix: 请注意,第一列是行名,而不是实际列 其他选项包括使用unclass和data.frame或as.data.frame。前者将创建语法上有效的名称,必要时在名称前加上X,并将空格转换为点,以此类推:
> data.frame(unclass(table(test.merge$names, test.merge$cost)))
X7 X8 X9
A 1 0 0
B 0 2 0
C 0 0 3
> as.data.frame(unclass(table(test.merge$names, test.merge$cost)))
7 8 9
A 1 0 0
B 0 2 0
C 0 0 3
美好的我在各种各样的as.XXX中摸索,但不知道as.data.frame.matrix+1我也不知道如何将.matrix放在末尾;但愿我4小时前问过这个问题!!谢谢@TylerRinker,原来unclass也能解决这个问题。很好。我在各种各样的as.XXX中摸索,但不知道as.data.frame.matrix+1我也不知道如何将.matrix放在末尾;但愿我4小时前问过这个问题!!谢谢@TylerRinker,原来unclass也能解决这个问题。
> data.frame(unclass(table(test.merge$names, test.merge$cost)))
X7 X8 X9
A 1 0 0
B 0 2 0
C 0 0 3
> as.data.frame(unclass(table(test.merge$names, test.merge$cost)))
7 8 9
A 1 0 0
B 0 2 0
C 0 0 3