1

答えは簡単だと思いますが、ここ数日いろいろ検索しましたが、正しいことを見つけられなかったようです.. 問題は、RODBC を介してデータセットをインポートしたことです。各ユーザーが生成しています

userdata <- sqlQuery(channel, query) 
userdata    

  USER   P1  P2   P2   P3
1 322    459 354  349  699 
2 232    249 311  349  699 
3 433    390 393  349  699 

次に、独自の条件セットを持つ 4 つの関数を作成しました。これらの関数は、単純に顧客の生涯価値という数値を返します。P1、P2、P2、P4 の各列で関数を使用するのが好きです。たとえば、列 P1 の各要素に clvP1() を適用します。「userdata」の値が更新されるという最終結果が始まるので、これをデータベースに送り返すことができます。

ということで、誰かコツがあれば教えてください。

ありがとう、

4

2 に答える 2

1

特定の関数を特定の列に適用する方法の実例を次に示します。

サンプルデータ:

test <- data.frame(a=1:3,b=4:6)
test

  a b
1 1 4
2 2 5
3 3 6

関数を次のように定義します。columnname+"fun"

afun <- function(x) {exp(x)}
bfun <- function(x) {log(x)}

col に適用afunし、colaなどbfunに適用bします...

data.frame(
  mapply(
    function(x,y) do.call(y,list(x)),
    test, 
    paste(names(test),"fun",sep=""),
    SIMPLIFY=FALSE
        )
)

結果

#     exp(a)   log(b)    as defined by afun and bfun
          a        b
1  2.718282 1.386294
2  7.389056 1.609438
3 20.085537 1.791759
于 2013-06-05T01:46:44.800 に答える