2015-12-30 40 views
-4

enter image description here如何創建一個列,以指示其他列中的R

我想創建一個新列指示前燃料數據,燃料類型基本類型,但我不知道該怎麼做。請幫忙!謝謝

+3

添加一個可重現的示例或我們可以用來幫助您的數據集。 – MLavoie

+2

請考慮閱讀[問]和如何產生[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 – Heroka

回答

1

首先,請看看上面評論中提供的資源,如何在此處詢問的問題。建立一個很好的問題有時是一種痛苦,但要真正快速有效地回答您的問題,還需要很長時間。

這邊,這是刺激我想你要求的東西。

首先,讓我們創建一個簡單的,重複性的數據集(即任何人都可以運行此代碼來創建相同的數據集,這意味着我們都從同一個點開始):

df <- data.frame(fuel12 = c(100,0,0,100,0) 
       , fuel34 = c(0,100,0,100,0) 
       , fuel56 = c(0,0,100,0,0) 
       ) 
#  fuel12 fuel34 fuel56 
# 1 100  0  0 
# 2  0 100  0 
# 3  0  0 100 
# 4 100 100  0 
# 5  0  0  0 

接下來,我們將使用applydf的列中查找任何非零值。如果沒有非零值,那麼該列將會說None。我不確定是否有多個非零列是可能的,但以防萬一我們列出所有非零列並用逗號分隔(例如fuel12,fuel34)。

df$which_fuel <- apply(df, 1, function(x) { ifelse(sum(x)==0 
                , "None" 
                , paste(names(df)[x > 0], collapse=",") 
               )}) 
df 
# fuel12 fuel34 fuel56 which_fuel 
# 1 100  0  0  fuel12 
# 2  0 100  0  fuel34 
# 3  0  0 100  fuel56 
# 4 100 100  0 fuel12,fuel34 
# 5  0  0  0   None 

這是你正在尋找的?

+0

是的,那正是我正在尋找的。我真的很感激!另外,我會看看如何提問,謝謝你的建議! –

相關問題