如何使用包“zipfR”将数据框转换为spc类?

时间:2014-10-30 14:50:59

标签: r class spc

我有一个data.frame,表示RT(转发)频率的频率。我有这种类型的data.frame:

data.frame':368 obs.of 2 variables: $ Var1: Factor w/ 368 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ... $ Freq: int 71482 16111 7720 4555 2949 2053 1620 1210 978 775 ...

我想通过以下命令使用" zipfR"包:

gigp_pos <- lnre("gigp",cost="chisq",method="NLM",rt_pos.spc)

然后我必须将这个数据帧转换为spc对象。这种类型的对象需要表达一些变量:m,v,N,Vm。

我说: Vm<- frq_frq_pos$Freq m<- frq_frq_pos$Var1

但我不明白变量V和变量N之间的区别。你能帮助我吗?

3 个答案:

答案 0 :(得分:0)

我也是zipfR的新用户,但我相信你可以使用

spc(Vm=frq_frq_pos$Freq, m=frq_frq_pos$Var1)

也许你也想要解开Var1 - 为什么它仍然是一个因素呢?

  • V =唯一术语的数量(在包中称为“类型”); =总和(VM)
  • N =观察/出现的总数(在包中称为“令牌”); =总和(VM * M)
  • 'spc'代表频谱。

答案 1 :(得分:0)

rt_pos = your data.frame
Vm = rt_pos$Freq
m = 1:length(Vm)
rt_pos.spc = spc(Vm, m)

您无法使用?spc查看详细信息

答案 2 :(得分:0)

N是样本的大小(令牌的数量),V是其词汇(类型的数量)。如果由于某些原因你想避免创建spc对象(见下文),你可以轻松获得N和V.

N <- sum(frq_frq_pos$Freq * frq_frq_pos$Var1)
V <- sum(frq_frq_pos$Freq)

更好的方法是使用spc函数

your.spc <- spc(Vm=frq_frq_pos$Freq, m=frq_frq_pos$Var1)

然后你不必计算N和V,因为它已经存在于spc对象中:

 N(your.spc)
 V(your.spc)

但是,如果您可以访问原始数据(我想这是一些文本?),那么获取spc对象的最简单方法是函数text2spc.fnc(来自languageR包):

 your.spc <- text2spc.fnc(your.text) 

然后你可以打电话:

 your.spc$Vm
 your.spc$m
 N(your.spc)
 V(your.spc)