0

我有一个 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 之间的区别。你能帮帮我吗?

4

3 回答 3

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)
于 2015-02-23T02:09:45.863 回答
0

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

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

也许您还想对 Var1 进行分解——为什么它仍然是一个因素?

  • V = 唯一术语的数量(在包中称为“类型”);=总和(Vm)
  • N = 观察/发生的总数(在包中称为“令牌”);=总和(Vm*m)
  • ' spc' 代表频谱。
于 2014-11-14T19:58:49.723 回答
0
rt_pos = your data.frame
Vm = rt_pos$Freq
m = 1:length(Vm)
rt_pos.spc = spc(Vm, m)

您不能使用 ?spc 查看详细信息

于 2015-01-28T03:51:40.183 回答