2016-04-10 20 views
0

私は現在、整数ベクトルexampleVectorとデータフレームexampleDFを持っていますが、exampleVectorの各要素を新しい要素として追加したいと思います。データフレームexampleDF。説明のため、私は現在持っている:ベクトルを使用してデータフレームに空の列を作成する

exampleVector <- 1:6 
exampleDF <- data.frame(First=1:4, Second=4:7,Third=7:10) 
exampleDF 
    First Second Third 
1  1  4  7 
2  2  5  8 
3  3  6  9 
4  4  7 10 

そして、何私が作成できるようにしたいと思いますがexampleDF[4:9]が文字ベクトルで

exampleDF 
    First Second Third 1 2 3 4 5 6 
1  1  4  7 <NA> <NA> <NA> <NA> <NA> <NA> 
2  2  5  8 <NA> <NA> <NA> <NA> <NA> <NA> 
3  3  6  9 <NA> <NA> <NA> <NA> <NA> <NA> 
4  4  7 10 <NA> <NA> <NA> <NA> <NA> <NA> 

です。

は、私は以下のコマンドを使用して、このバリエーションを行うことができるだろうと認識しています:

exampleDF$"1" <- as.character(NA) 
exampleDF[["1"]] <- as.character(NA) 
exampleDF[c("1","2","3","4","5","6")] <- as.character(NA) 

しかし、私は、より柔軟で何かが必要。私がオンラインで見つけられたことは、1つの列を複数のデータフレームに追加することでした。そのためには、mapplycbindを提案しました。

私はここで何かが分かりません - 私はR言語では非常に新しいので、可能であれば、forループなしでこれをやろうとしています。最近のやりとりによって、これが適用機能は通常十分であるため、主にRスクリプトのハックと考えられていました。

+0

柔軟性の意味を説明できますか?あなたの最後の例は明示的なforループを必要としないので、 – Simon

+1

は十分柔軟ですか? ExampleDF [as.character(exampleVector)] < - NA_character_ – chinsoon12

+0

どのように 'exampleDF [c(" 1 "、" 2 "、" 3 "、" 4 "、" 5 "、" 6 ")] < - as.character (NA) '十分な柔軟性がなく、@ chinsoon12あなたのOPとは何か違うのですか? – rawr

答えて

0

exampleVectorは数値なので、コードに入力するときは 文字に変換する必要があります。それ以外の場合は、インデックスに基づいた選択として解釈される になります。同じ名前が複数の 回発生してデータフレームを取得に対してあなた を保護し、この設定には制限はありませんことを

exampleVector <- 1:6 
exampleDF <- data.frame(First=1:4, Second=4:7,Third=7:10) 


exampleDF[as.character(exampleVector)] <- NA_character_ 

注意。後で問題が生じる可能性があります( の名前でデータフレームをサブセット化する場合)。 に健全性チェックを追加して、一意の名前を取得してください。

+0

私たちは行っています - 私は 'exampleDF [exampleVector] < - as.character(NA)'を試していて、あらゆる種類の問題に巻き込まれていました。私は 'exampleVector'を受け取り、それが整数ベクトルであるためインデックスとして扱うことに気づいていませんでした。 – JZeolla

関連する問題