2017-11-04 44 views
0

データを検索し、条件値が特定の文字列と等しい経験値を見つける関数を作成したいと考えています。しかし、これはこのエラーを得られます。関数の引数として文字列値を渡す

Error: evaluation nested too deeply: infinite recursion/options(expressions=)?

Error during wrapup: evaluation nested too deeply: infinite recursion/options(expressions

subset = function(data, ttt="string") { 
    subset.cond <- subset(data, Condition==ttt) 
    row.cond <- subset.cond[ which(subset.cond$experience != 0),] 
    row.cond$experience <- factor(row.cond$experience) #drop factor levels 
    exp.cond <- levels(row.cond$experience) #get experience names 
    cond <- data[ which(data$experience==exp.cond), ] #cleaned data 
    return(list(subset.cond=subset.cond,row.cond=row.cond,exp.cond=exp.cond)) 
} 

subset(data=data_1, ttt="drug1") 

誰もが任意のヒントを持っていますか? ありがとう!

+0

サンプルデータを提供できますか? –

+0

intensity \t experience \t Condition 1.0240835869 \t n5 \t drug4 1.6622650638 \t n5 \t drug4 0.8888095207 \t n5 \t drug4 0.9113421721 \t n5 \t drug4 1.2815784814 \t n11 \t drug2 0.5038846664 \t n11 \t drug2 1.5163685324 \t n11 \t drug2 1.315169773 \t n5 \t drug1+drug2 1.2837342548 \t n5 \t drug1+drug2 1.307013202 \t n5 \t drug1+drug2 1.1297371947 \t n5 \t drug1+drug2 0.6114186921 \t n11 \t drug1+drug2 1.0337745362 \t n11 \t drug1+drug2 1.5503374089 \t n11 \t drug1+drug2 1.4897651898 \t n11 \t drug1+drug2 1.4164219704 \t n9 \t drug4 0.6683913411 \t n9 \t drug4 2.031900503 \t n9 \t drug1 3.5488157902 \t n9 \t drug1 2.1030339989 \t n9 \t drug1 2.1243746251 \t n9 \t drug1
wondRful

+0

この関数は、特定の列、またはデータセット全体を調べますか?特定のパターンが一致するかどうかを調べる 'grepl'関数を使うことができます。例として、この 'grepl(" an "、c(" use "、" another "、" example "、" man ")) – AntoniosK

答えて

0

あなたは無限回帰関数を作成しました。あなたはにしようとしましたか?関数subsetの最初の行はsubsetを呼び出します(つまり、それ自身を呼び出します)。

基本機能subsetを使用するように指定することで、この機能を使用できます。すなわち、

subset = function(data, ttt="string") { 
    subset.cond <- base::subset(data, Condition==ttt) 
    [...] 
} 
関連する問題