2014-10-30 99 views
0

我有一个data.frame,表示RT的频率频率(转推)。我有这种类型的data.frame:如何将数据框转换为包“zipfR”的spc类?

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” 包使用以下COMAND:

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.你能不能帮我之间的区别?

+0

我不熟悉'zipfR'包,但是基于'lnre'我无法预料你在做什么?请帮忙。你需要转换哪些数据?什么是变量'm','v','N'和'Vm'?你想使用'lnre.spc'吗? – 2014-11-01 08:31:09

+0

@RomanLuštrik我必须将所有数据集转换为spc对象,因为我需要使用lnre命令来创建模型。然后我看到命令?如果m是频率类别m的整数向量,Vm是相应类别尺寸Vm的向量,最后N,V是总样本量N和频谱词汇量V。我不明白V和N之间的区别。 – 2014-11-03 10:08:34

回答

0

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

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

也许你也想unfactor VAR1 - 为什么它反正一个因素?

  • V =唯一条款的数量(在包中称为'类型'); =总和(Vm)
  • N =观察/发生的总数(在包中称为“令牌”); =总和(Vm * m)
  • 'spc'代表光谱。
+0

感谢您的回复。现在它工作。非常感谢你 – 2014-12-02 17:03:55

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

你不能使用?SPC以查看详情

+1

flguo,这个答案看起来像需要更多的解释才能有所帮助。 – Mars 2015-01-28 04:51:48

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) 

BUT ,如果你有访问原始数据(我猜它是一些文本?),那么获取spc对象的最简单方法是text2spc.fnc(来自languageR软件包):

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

然后,您可以拨打:

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