0
a<-as.factor(c('a','a','b','b','c','d'))
b<-as.factor(c('a','b','c','c','d','a'))
c<-as.factor(c('a','b','d','d','c','b'))
x<-data.frame(a,b,c)

  a b c
1 a a a
2 a b b
3 b c d
4 b c d
5 c d c
6 d a b

非常に大きなデータ テーブル (datatable パッケージを使用) があり、簡単に識別できるように、単純に列名を行因子の値に追加したいと考えています。

したがって、上記の簡単な例(説明のためにデータフレームを使用)では、次のようなものがあります

a    b   c
a:a  b:a c:a
a:a  b:b c:b
a:b  b:c c:d
..
..
a:d  b:a c:b

ある種の適用と貼り付けの組み合わせを試みました (失敗しました)。しかし、colname引数を渡して各列に正しく貼り付けることができません。大きなデータテーブルに対してこのタスクを達成する方法についてのアイデアはありますか? データテーブルのアプローチは素晴らしいですが、1 回限りのアクションであるため、データフレームも問題ありません。

4

1 に答える 1

4

データ フレーム ソリューション:

x[] <- mapply(function(n, f) {
    levels(f) <- paste(n, levels(f), sep=":")
    f
}, names(x), x)
于 2013-05-19T09:20:16.153 に答える