生データに基づいて生成されたデータフレームのリストからテーブルをクロス集計しようとしています。元のデータフレームは、8つの変数の1004回の観測から構成されています。データフレームをリストに格納した後、コルネームとrownamesは使用できなくなりました
変数「DECADE」の各レベル(21年間あります)のデータフレームを取得したかったのです。私は、次のでした:
> mydata.split<-split(mydata, mydata$DECADE)
# remove the column "DECADE" since no longer needed
> mydata.split<-lapply(mydata.split, function(x) x=x[, -7])
> french.split[1:2] # outputs the first two elements of the list
$`1500`
ARTICLE COMPSYNT2 POSITION COMPTYPE SUBSTYPE2 VARIANT GENRE2
1 No NFClau Med SoA Contr Lieu Poetry
$`1510`
ARTICLE COMPSYNT2 POSITION COMPTYPE SUBSTYPE2 VARIANT GENRE2
2 No PronPers Fin Hum Contr Lieu Novel
3 No NP Init Hum Repl Lieu Novel
4 No NP Init Conc Subst Lieu Treat_Ess
次に、変数「変異体」の関数でリストのクロス集計各データフレームのために、私は別々に各テーブルにアクセスし、forループ用内クロス集計を適用しました列1:nに列「VARIANT」を置き、すべてのデータフレームを1つに(各10年ごとに)スタックしようとしましたが、失敗しました。
> y1560s<-as.data.frame(mydata.split[6])
> for(i in 1:ncol(y1560s)){
+ cross.table<-table(y1560s[, i], y1560s[, 6])
+ data.list<-append(cross.table, data.list)
+ big.table<-do.call(cbind, data.list)
+ }
は、出力は非常に奇妙です:期待された何
> head(big.table)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
[,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25] [,26] [,27]
[,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36] [,37] [,38] [,39] [,40]
[,41] [,42] [,43] [,44] [,45] [,46] [,47] [,48] [,49] [,50] [,51] [,52] [,53]
[,54] [,55] [,56] [,57] [,58] [,59] [,60] [,61] [,62] [,63] [,64] [,65] [,66]
[,67] [,68] [,69] [,70] [,71] [,72] [,73] [,74] [,75] [,76] [,77] [,78] [,79]
[,80] [,81] [,82] [,83] [,84] [,85] [,86] [,87] [,88] [,89] [,90] [,91] [,92]
は、以下のような大きなテーブルであるが、その後、採用プロセスはかなり面倒です。
> article<-table(y1560s[, 1], y1560s[, 6])
> compsynt<-table(y1560s[, 2], y1560s[, 6])
> position<-table(y1560s[, 3], y1560s[, 6])
> comptype<-table(y1560s[, 4], y1560s[, 6])
> substype<-table(y1560s[, 5], y1560s[, 6])
> genre<-table(y1560s[, 7], y1560s[, 6])
> big.table<-rbind(article, compsynt, position, comptype, substype, genre)
> big.table
Lieu Place
No 14 4
Yes 0 3
AdjP 0 0
DetPoss 0 4
Gap 0 0
NFClau 6 0
NP 6 2
Num 0 0
ProForm 2 1
PronPers 0 0
PronPoss 0 0
SubClau 0 0
Fin 7 5
Init 2 2
Med 5 0
Abstr 3 1
Act 0 0
Anim 0 0
Conc 2 0
Hum 1 6
Plant 2 0
Prop 0 0
SoA 6 0
Comp 0 0
Conc 0 0
Contr 6 1
Dep 0 2
Emp 0 1
Repl 4 2
Subst 4 1
Corresp 0 0
Drama 1 1
Memoirs 0 0
Non-Litt 0 0
Novel 0 1
Other 0 0
Pamphlet 0 0
Poetry 0 1
Rhetoric 0 0
Travel 0 0
Treat_Ess 13 4
Undef 0 0
1の簡単な方法はあります)数十年のリストに格納されたデータフレームをアクセスし、2)数十年のリストの各要素に対して一定として変数「変異体」とすべてのテーブルを積層します?
ご連絡いただきありがとうございます。
CBechet。
EDIT:次のように試してみると、結果のデータフレームを後で処理するためのリストに格納することはできません。
> for(i in 1:length(mydata.split)) {
+ mytable<-as.data.frame(mydata.split[i])
+ article<-table(mytable[, 2], mytable[, 1])
+ compsynt<-table(mytable[, 3], mytable[, 1])
+ position<-table(mytable[, 4], mytable[, 1])
+ comptype<-table(mytable[, 5], mytable[, 1])
+ substype<-table(mytable[, 6], mytable[, 1])
+ genre<-table(mytable[, 7], mytable[, 1])
+ big.table<-as.data.frame(rbind(article, compsynt, position, comptype, substype, genre))
}
それがおそらくです。ちょうど 'big.table [1:5、1:5]'かそのようなものを見て、その情報が周りにあることを確認してください。 – A5C1D2H2I1M1N2O1R2T1
実際には存在しないため、これらの列の値を取得することはできません。大きなテーブルがベクトル化されたようです。 – CBechet