5119


下記の計算結果を、txtかcsvでファイルに出力したく、ご教示いただけませんでしょうか。

[code]

    #CSVファイルを読み込む
    a <- read.csv("testfile.csv")
    
    #列Aを表示
    print(a$A) # あるいはprint(a[, 'A'])
    print(a$B)
    print(a$C)
    
    
    #A列の統計値を求める
    #平均
    mean(a$A)
    #中央値
    median(a$A)
    #最頻値
    names(which.max(table(a$A)))
    
    
    #B列の統計値を求める
    #平均
    mean(a$B)
    #中央値
    median(a$B)
    #最頻値
    names(which.max(table(a$B)))
    
    
    #C列の統計値を求める
    #平均
    mean(a$C)
    #中央値
    median(a$C)
    #最頻値
    names(which.max(table(a$C)))
    
    
    
    #計算した統計値を結果をデータに保存する
    ???
    
[/code]

結果（イメージ。フォーマットは違っても可）

[code]

     ,平均,中央値,最頻値
    A,結果,　結果,　結果
    B,結果,　結果,　結果
    C,結果,　結果,　結果
    
[/code]


CC BY-SA 3.0
2015-01-22T11:03:29.220
5082
2015-01-23T02:32:53.850
7590
question
r
R言語で、計算結果をtxtかcsvで出力する方法が知りたい


例えばこんな感じでしょうか。

[code]

    # 最頻値を返す(同率1位の場合の対応はしていない)
    my_mode <- function(x) {
      names(which.max(table(x)))
      # as.integer(names(which.max(table(x)))) とすると整数として返します
    }
    # 同じデータ構造に異なる関数を繰り返し適用する目的で定義しています
    methods <- c('mean', 'median', 'my_mode')
    
    a <- read.csv('testfile.csv')   
    # forでも書けますがapply系の関数を覚えると便利かと思います
    result <- sapply(methods, function(method) {
      sapply(a, function(column) {
        # 動的な関数呼び出しを行うものです。詳しくは?do.callなどで。。
        do.call(method, list(column))
      })
    })
    # ヘッダを変更します。
    colnames(result) <- c('平均', '中央値', '最頻値')
    write.csv(result, file='result.csv')
    
[/code]

以下、余談です。

ご存じかもしれませんが、`R`はわからない関数などの頭に`?`を付けると、ヘルプを表示してくれます。たとえば`sapply`がわからない場合は`?sapply`と`R`のコンソールに尋ねることができます。

`R`の基本文法については[RjpWiki -
RjpWiki](http://www.okada.jp.org/RWiki/)などを参考にされても良いかもしれません。英語ということでとっつきにくいかもしれませんが[R
for cats · and cat lovers](http://rforcats.net/)
(日本で言う「猫でもわかる」系チュートリアル）も個人的には面白くて好きです。


CC BY-SA 3.0
2015-01-23T02:17:54.807
5119
2015-01-23T02:32:53.850
2015-01-23T02:32:53.850
3313
3313
5082
answer