【发布时间】:2021-06-11 07:15:18
【问题描述】:
这是我正在处理的数据:
> data
Segment Product Value Key
1 non-domestic S1 517.50760307564053 Actuals Sales
2 non-domestic S2 1235.3088913918129 Actuals Sales
3 non-domestic S3 2141.6841816176966 Actuals Sales
4 domestic S1 -958.38836859580044 Actuals Sales
5 domestic S2 -1129.5593769492507 Actuals Sales
6 domestic S3 -137.68477107274975 Actuals Sales
7 non-domestic S1 -296.07559218703756 Quarter Sales
8 non-domestic S2 1092.0390648120747 Quarter Sales
9 non-domestic S3 1156.2866848179935 Quarter Sales
10 domestic S1 -1975.0222255105061 Quarter Sales
11 domestic S2 -2549.8125184965966 Quarter Sales
12 domestic S3 -2608.2434152116011 Quarter Sales
我正在尝试传播它以获得一个没有缺失值的 6 行 4 列 (Segment, Product, Actuals Sales, Quarter Sales) 表
spread(data=data, key=Key, value=Value)
不幸的是,我得到的是这个。我知道这是因为 Segment 和 Product 列中存在非唯一值。
Segment Product Actuals Sales Quarter Sales
1 domestic S1 -958.38836859580044 <NA>
2 domestic S2 -1129.5593769492507 <NA>
3 domestic S3 -137.68477107274975 <NA>
4 domestic S1 <NA> -1975.0222255105061
5 domestic S2 <NA> -2549.8125184965966
6 domestic S3 <NA> -2608.2434152116011
7 non-domestic S1 517.50760307564053 <NA>
8 non-domestic S2 1235.3088913918129 <NA>
9 non-domestic S3 2141.6841816176966 <NA>
10 non-domestic S1 <NA> -296.07559218703756
11 non-domestic S2 <NA> 1092.0390648120747
12 non-domestic S3 <NA> 1156.2866848179935
能否请您帮帮我,如何删除缺失值并创建一个表,其中前两列中的值不重复?
这是可复制的示例:
> dput(data)
structure(list(Segment = c("non-domestic", "non-domestic", "non-domestic",
"domestic", "domestic", "domestic", "non-domestic ", "non-domestic ",
"non-domestic ", "domestic ", "domestic ", "domestic "), Product = c("S1",
"S2", "S3", "S1", "S2", "S3", "S1", "S2", "S3", "S1", "S2", "S3"
), Value = c("517.50760307564053", "1235.3088913918129", "2141.6841816176966",
"-958.38836859580044", "-1129.5593769492507", "-137.68477107274975",
"-296.07559218703756", "1092.0390648120747", "1156.2866848179935",
"-1975.0222255105061", "-2549.8125184965966", "-2608.2434152116011"
), Key = c("Actuals Sales", "Actuals Sales", "Actuals Sales",
"Actuals Sales", "Actuals Sales", "Actuals Sales", "Quarter Sales",
"Quarter Sales", "Quarter Sales", "Quarter Sales", "Quarter Sales",
"Quarter Sales")), .Names = c("Segment", "Product", "Value",
"Key"), row.names = c(NA, -12L), class = "data.frame")
【问题讨论】:
-
请提供可重现的示例 (stackoverflow.com/help/minimal-reproducible-example)。您可以使用
dput()创建数据框的可复制和可共享版本 -
@PedroAlencar 完成!
-
我认为这是因为您的某些句段中有尾随空格。你能修剪它们然后再试一次吗?即
data$Segment <- trimws(data$Segment)然后是你的传播命令 -
@Hobo 的工作就像一个魅力!谢谢,我没注意到:)
-
优秀;乐于助人