我正在寻找一种简单的方法来对我的数据框进行子集操作,并附加一个频率计数的列。假设我有一个像这样的数据框:
Name JA JN JA JB JA JN
我希望得到这样的结果:
Name Frequency JA 3 JN 2 JB 1
有什么建议吗?谢谢。
原因:出现这个问题的原因是需要在给定的数据集中为特定的值添加一个计数列,即根据某一列的值统计出现次数。
解决方法:一种解决方法是使用data.table包。可以通过以下代码实现:require(data.table) DT<-data.table(df) DT[,.(Frequency=.N),by=Name]。另一种更高效的方法是使用setDT函数,可以将代码简化为setDT(df)[,.(Freq=.N), by=Name]。
问题的出现原因是用户想要给数据框中的某一列统计特定值的数量,并把结果作为新的一列添加到数据框中。
解决方法有两种:
1. 使用dplyr包中的tally函数。首先用group_by函数按照要统计的列(Name)进行分组,然后使用tally函数计算每个组中特定值的数量。
2. 使用base R中的table函数。首先使用table函数对要统计的列(df1[,1])进行计数,然后将结果转换为数据框。结果显示了每个特定值的数量。
用户名或电子邮箱地址
密码