我有一个数据框
Fruit Amount Price
Apple 2 20
Banana NA 59
Grapes NA NA
我想通过在列之间使用〜将它们链接在一起来创建“键”列。 我需要的输出-
当前使用paste(fruit, amount,price, sep="~", collapse=NULL)
但是我得到的输出是NA-
答案 0 :(得分:0)
试试这个-
output <- paste(fruit, amount,price, sep="~", collapse=NULL)
gsub("NA",'',output)
输入数据:
fruit <- c('Apple','Banana','Grapes')
amount <- c(100,20,NA)
price <- c(NA,60,10)
答案 1 :(得分:0)
您可以将NAs
替换为空字符串,然后使用经过修改的data.frame
df <- read.table(text = "Fruit Amount Price
Apple 2 20
Banana NA 59
Grapes NA NA", header = TRUE, stringsAsFactors = FALSE)
df[is.na(df)] = ""
apply(df, 1, paste, collapse = "~")
# "Apple~2~20" "Banana~~59" "Grapes~~"
答案 2 :(得分:0)
这是不需要更改原始数据集或生成另一个数据集的解决方案:
data$key<-apply(data,1,function(x) paste(ifelse(is.na(x),"",x),collapse="~"))
Fruit Amount Price key
1 Apple 2 20 Apple~ 2~20
2 Banana NA 59 Banana~~59
3 Grapes NA NA Grapes~~