簡體   English   中英

根據R中的另一列創建一個新列

[英]Create a new column based on another column in R

我有一張桌子,如下所示:

Name   ID   Level
Name1   A     1
Name2   B     2
Name3   C     3
Name4   D     1
Name5   E     2
Name6   F     1

有誰知道我如何在R中創建另一列,該列本質上是在Col“級別”上,我可以在其中突出顯示特定行屬於其上方的級別1。 例如,在上面的示例中,名稱2和名稱3與名稱1屬於同一組; 名稱5屬於名稱4組。

我可以使用if語句在Excel中進行此操作,但如果可以在R中進行所有操作,則效果會更好。否則,僅在Excel中創建分組然后將其導出到R中可能會更容易。

我希望它看起來像這樣:

Name   ID   Level  Groupings
Name1   A     1    Name1
Name2   B     2    Name1
Name3   C     3    Name1
Name4   D     1    Name4
Name5   E     2    Name4
Name6   F     1    Name6
etc     etc   etc  etc 

這部分代碼只是為了重新創建數據集示例:

data <- data.frame(Name = paste0('Name',1:6),
                   ID = LETTERS[1:6],
                   Level = c(1,2,3,1,2,1),
                   stringsAsFactors = FALSE) 

而以下部分是使用zoo軟件包中的na.locf()函數解決問題的一種可能方法:

library(zoo)
data$Groupings <- ifelse(data$Level == 1, data$Name, NA) data$Groupings <- na.locf(data$Groupings)

對於將來有關代碼問題的問題,建議您在Stack Overflow上發布而不是Data Science。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM