4

Excelファイルから作成されたデータフレームがあります。列の上に通常のヘッダーがありますが、一部の列には削除したい%記号が含まれています。

stackoverflowを検索すると、行列からパーセンテージを削除するための優れたコードが得られます。Rの行列の値を編集する方法はありますか?、データフレームに適用しようとすると機能しませんでした

as.numeric(gsub("%", "", my.dataframe))

代わりに、強制によって導入されたことを説明する警告メッセージを含む「NA」の文字列を返すだけです。応募した時、

gsub("%", "", my.dataframe))

「c(...)」形式の値を取得しました。ここで、...は数値の後にコンマが続き、これは私が持っていたすべての列に対して再現されました。証拠に%はありませんでした。これを元に戻すことができれば...私は料理をしているでしょう。

どんな助けも大いに受けました、ありがとう。

4

1 に答える 1

7

@Arunのコメントと、data.frameがどのように見えるかを示す画像に基づいています。

> DF <- data.frame(X = paste0(1:5,'%'), 
                   Y = paste0(2*(1:5),'%'),
                   Z = 3*(1:5), stringsAsFactors=FALSE )

> DF # this is how I imagine your data.frame looks like
   X   Y  Z
1 1%  2%  3
2 2%  4%  6
3 3%  6%  9
4 4%  8% 12
5 5% 10% 15

> # Using @Arun's suggestion
> (DF2 <- data.frame(sapply(DF, function(x) as.numeric(gsub("%", "", x)))))
  X  Y  Z
1 1  2  3
2 2  4  6
3 3  6  9
4 4  8 12
5 5 10 15

結果の列が数値になるように呼び出しで追加as.numericしました。sapply使用しない場合as.numeric、結果はになりますfactor。を使用してそれをチェックしてくださいsapply(DF2, class)

于 2013-01-17T17:55:47.600 に答える