[英]How can I add a column to a data frame such that the values added increase the total row count in R?
我是R的新手,並且想在具有值的現有數據框中添加一列。 例如,說這是我當前的表
Column 1 | Column 2 | Column 3
---------------------------------
Dog | Hound | Black
Doggo | Lab | Brown
我想添加另一列,這樣結果將是這樣的:
Column 1 | Column 2 | Column 3 | Column 4
---------------------------------------------
Dog | Hound | Black | Male
Dog | Hound | Black | Female
Doggo | Lab | Brown | Male
Doggo | Lab | Brown | Female
因此,這幾乎就像添加另一個維度,但帶有一個列。 任何幫助,將不勝感激!
編輯:在這里找到解決方案https://stackoverflow.com/a/21911221/9882844
第二次編輯:下面評論中的解決方案實際上更好
您可以使用參數all=TRUE
merge
:
df2 <- data.frame(Column4 = c("Male","Female"),stringsAsFactors = FALSE)
merge(df,df2,all = T)
# Column1 Column2 Column3 Column4
# 1 Dog Hound Black Male
# 2 Doggo Lab Brown Male
# 3 Dog Hound Black Female
# 4 Doggo Lab Brown Female
您還可以使用tidyr
庫中的crossing
,它返回預期輸出的順序:
tidyr::crossing(df,df2)
# Column1 Column2 Column3 Column4
# 1 Dog Hound Black Male
# 2 Dog Hound Black Female
# 3 Doggo Lab Brown Male
# 4 Doggo Lab Brown Female
數據
df <- read.table(text="Column1 Column2 Column3
Dog Hound Black
Doggo Lab Brown",h=T,strin=F)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.