2017-01-27 2 views
-1

私はおそらくこれを達成するためのラウンドアバウト方法を追求していますが、「goodAttributes」というリストと、QTableというデータフレームがありました。 QTableの列名は、私はそう、私は列の最小値を返すようにしたい、その列の最大値を返すようにしたいよりも、「goodAttributes」である場合...列名がRのリストにある場合は関数を適用しますか?

QTableの列名がでた場合、私がチェック"grepl"を使用して "goodAttributes"をリストし、値がリスト内の "goodAttributes"にある場合はQTableの列名を "True"にリセットし、それ以外の場合は列名を "False"と設定して新しいテーブルQTable2を呼び出します。

「QTableB」と呼ばれる現在DATAFRAME:今

enter image description here

QTableBの列名は「Trueは、」私は、その列の最大値を見つけたい、とされている場合、列名の場合は "False"です。その列の最小値を返したいと思います。結果を新しいデータフレームに保存します。これを行うには

+1

質問を編集します。 (コメントは使用しないでください)データをテキストとして投稿し、コードを表示します。私のdownvoteではありません。 (他の誰かが同じ問題を見て、怠惰でした。) –

答えて

0

一つの方法は、単純にフレームのcolnamesの全てに関数を適用することです:

v1とv3ののMAX(列すなわち

v1 v2 v3 
10 11 40 

を生み出す

QTable <- data.frame(v1=1:10,v2=11:20,v3=31:40) 
goodAttributes <- c("v1","v3") 

sapply(colnames(QTable),function(c){ 
    if(c %in% goodAttributes) max(QTable[,c]) 
    else min(QTable[,c])}) 

goodAttributesの名前)とv2の最小値。

関連する問題