[英]How to create a new column with multiple values based on another column in 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.