2016-08-22 11 views
1

これを解決するためにしばらく検索しましたが、残念ながら答えが見つかりませんでした。列名と一致するセルを行にコピー

私のデータフレームでは、最後の列には列名と一致する文字列が含まれています。私は各列の列名に一致する値を返す(コピー)別の列を作成したいと思います。例えば

、私のデータがあると言う:

col1 <- c(1, 4, 6, 0, 5) 
col2 <- c(4, 6, 7, 8, 6) 
col3 <- c(0, 4, 2, 2, 1) 
col4 <- c("col1", "col1", "col2", "col3", "col1") 
df <- data.frame(col1, col2, col3, col4) 

と私が達成したいことは、各行の関連細胞いるコピーCOL5です:

col1 col2 col3 col4 col5 
1  4  0  col1 1 
4  6  4  col1 4 
6  7  2  col2 7 
0  8  2  col3 2 
5  6  1  col1 5 

基本的にはCOL4を見て、返しますその列名に一致する同じ行の値。

これは明らかに私のデータの非常に単純化されたバージョンなので、私はそれを自動化したいのです。 私は本当に助けを感謝するでしょう:)

答えて

0

row/colインデックスを使用して 'col5'を作成するためにデータセットから要素を抽出することができます。

df$col5 <- df[-4][cbind(1:nrow(df), match(as.character(df$col4), colnames(df)))] 
df$col5 
#[1] 1 4 7 2 5 
+1

どうもありがとうございました!私は本当にあなたの助けに感謝します!私は許可されているときに数分で答えとして受け入れます:) – Nat

関連する問題