2

文字のリストに cbind() してから、次のようにデータ フレームに変換するベクトルから始めます。

numbers <- c(110, 5, 43, 1008)
mat <- cbind(letters, numbers)
letters <- c("A", "B", "C", "D")
df <- data.frame(mat)

並べ替えを適用しました:

df[order(df[,2]),]

そして私は得る:

  letters numbers
4       D    1008
1       A     110
3       C      43
2       B       5

最初の数字、次に2番目などを見るかのように列を並べ替えていますが、わかりません。sort() 関数は列で機能しますが、すべての行に適用できないようです...

ありがとう!

4

1 に答える 1

4

data.frame を間違った方法で作成しました。文字マトリックスから開始することにより、すべてが文字マトリックスのままになります。そこにが必要ですas.numeric()(または別の方法で開始します)。

R> df <- data.frame(letters=LETTERS[1:4], numbers=c(110, 5, 43, 1008),
+                   stringsAsFactors=FALSE)
R> df
  letters numbers
1       A     110
2       B       5
3       C      43
4       D    1008
R>

列のタイプを確認できます。

R> sapply(df, class)
    letters     numbers 
"character"   "numeric" 
R>

これで、並べ替えは期待どおりに機能します。

R> df[order(df[,2]),]
  letters numbers
2       B       5
3       C      43
1       A     110
4       D    1008
R> 
于 2013-11-12T03:34:04.060 に答える