2017-01-23 9 views
1

Rを1時間ほどブラウズして、私が持っている問題の答えを見つけようとしています。これまで見た。計算された値のリストをデータフレーム内の新しい列に追加する必要があります。 if文でこれを試してみましたが、運がなかったので、apply関数とカスタム関数を使ってこの演習を完了しようとしています。計算されたフィールドをRのデータフレームに追加するためのカスタム関数を適用する

理論的にはこれが私のデータです:

a <- 1:5 
b <- 1:5 
c <- 1:5 

df <- data.frame(a,b,c) 

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

これは私がlapply関数内埋め込みたい機能です。

func <- function(x){ 
    (((x/1000)*b)+c) 
} 

私がしようとすると、この実行すると:

lapply(df, function(x) {(((x/1000)*b)+c)}) 

を私は次のような出力が得られます。

私は右であると確信しているが、それは私が探しているものではないのです
$a 
[1] 1.001 2.004 3.009 4.016 5.025 

$b 
[1] 1.001 2.004 3.009 4.016 5.025 

$c 
[1] 1.001 2.004 3.009 4.016 5.025 

私が生成しようとしているのは、(((a/1000)* b)+ c)列Dです。誰も助けることができますか?

THX 牛肉だけ

答えて

3

この?

a <- 1:5 
b <- 1:5 
c <- 1:5 

df <- data.frame(a,b,c) 
(df$d <- ((df$a/1000)*df$b)+df$c) 
+1

はい、すべてのかっこも実際には必要ありません。 'df $ d < - (df、a/1000 * b + c)'などです。 – thelatemail

+0

はい、()は便利なショートカットです – BigDataScientist

関連する問題