我是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
第二次编辑:下面的注释中的解决方案实际上更好
发布于 2018-06-05 05:55:53
您可以使用带有参数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
data
df <- read.table(text="Column1 Column2 Column3
Dog Hound Black
Doggo Lab Brown",h=T,strin=F)
https://stackoverflow.com/questions/50689145
复制相似问题