2017-08-06 3 views
1

私が書いた関数でデータをサブセット化したいのですが、サブセット化されたデータが私が望むものと同じ問題に走り続けます。rの関数内のサブセット化 - 常に選択された変数の最初の要素を返します

サンプルデータ:私が書いた

n = c(2, 3, 5) 
QID = c("aa", "bb", "cc") 
b = c(TRUE, FALSE, TRUE) 
df = data.frame(n, QID, b) 
df$QID = as.character(df$QID) 
str(df) 
'data.frame': 3 obs. of 3 variables: 
$ n: num 2 3 5 
$ QID: chr "aa" "bb" "cc" 
$ b: logi TRUE FALSE TRUE 

機能は、私が最初の関数内のデータのサブセットをしてから続行する必要があるということです。

testFun = function(QID){ 
    QofInterest = subset(data, QID == String(QID)) 
    ... 
return(QofInterest) 
} 

ただし、常に最初のchar値のデータが返されます。例えば、私がしなければ:QID私はなぜこれが起こっているかわからない「AA」

を==で

dataWanted = testFun("bb") 

は、それは常に私の行を返します。どんな提案も大歓迎です!

+0

は、使用しているパッケージを追加してください返します。 'String'関数が見つかりません。 – nicola

答えて

0

なぜStringが必要で、どのパッケージから使用されているのかは不明です。単に

testFun = function(str1){ 
    subset(df, QID == str1) 

} 

testFun('bb') 
# n QID  b 
#2 3 bb FALSE 

予想される行

+0

ありがとう!ここでStringが必要ない理由を教えてください。 – lll

+0

@lalalulu関数 '' bb''への入力はすでに文字列 – akrun

+0

ですが、なぜこの関数は常に最初の値を返すのでしょうか?解明してくれてありがとう! – lll

関連する問題