3

ベクターに基づいて、「パイプのような」演算子を使用して、データフレーム内の他の変数と同じ長さの新しい変数を作成しようとしていますLETTERSmagrittr何かがうまくいかず、問題を診断するには新人すぎます。

「伝統的な」ネストされた関数を試してみると、変数を正しく作成できます。

expand.grid(a=c(1000-500,1000,1000+500),
                       b=c(15,150)) %>%
  mutate(c=paste("foo", LETTERS[seq_along(a)],sep="_"))

##      a   b     c
## 1  500  15 foo_A
## 2 1000  15 foo_B
## 3 1500  15 foo_C
## 4  500 150 foo_D
## 5 1000 150 foo_E
## 6 1500 150 foo_F

%>%それで、パイプのようなfrommagrittrとを試してみようと思いましたdplyr

expand.grid(a=c(1000-500,1000,1000+500),
                       b=c(15,150)) %>%
  mutate(c=paste("foo", a %>% 
                   seq_along %>% 
                   LETTERS[.],sep="_"))

## Error: incorrect number of dimensions

[これは、次のエイリアスから抽出 () 関数を追加しても機能しませんmagrittr

expand.grid(a=c(1000-500,1000,1000+500),
                       b=c(15,150)) %>%
  mutate(c=paste("foo", a %>% 
                   seq_along %>% 
                   extract(LETTERS,.),
                 sep="_"))

## Error: incorrect number of dimensions

debug_pipe無駄にパイプをデバッグしようとしました。どんなアイデアにもとても感謝しています!

4

2 に答える 2

4

必要に応じて、次のことができます。

expand.grid(a=1000+c(-500, 0, 500), b=c(15,150)) %>%
mutate(c = a %>% seq_along %>% LETTERS[.] %>% paste0("foo_", .))
于 2014-05-18T15:23:02.993 に答える