【发布时间】:2017-09-18 20:34:55
【问题描述】:
我正在寻找以下问题的简单答案:
样本数据,data4和data3相似,data1和data2相似:
data4 <- X__1 X__2
<chr> <dbl>
No-C1-PG3.7-LDI0-LDE0-LB0.045-PDC0-D10 -12.27027
No-C0.95-PG3.7-LDI0-LDE0-LB0.045-PDC0-D10 Undf
data1 <- X__1 X__2
Yes-C0.9-PG3.7-LDI0-LDE0-LB0.045-PDC0-D10 -12.2
Yes-C0.85-PG3.7-LDI0-LDE0-LB0.045-PDC0-D10 20
Yes-C0.8-PG3.7-LDI0-LDE0-LB0.045-PDC0-D10 -15.2
Yes-C0.75-PG3.7-LDI0-LDE0-LB0.045-PDC0-D10 -19.2
我正在尝试绑定两个数据集的行:
data1 <- read_excel("~/location1.xlsx")
data2 <- read_excel("~/location2.xlsx")
data3 <- read_excel("~/location3.xlsx")
data4 <- read_excel("~/location4.xlsx")
YesFR <- rbind(data1,data2)
NoFR <- rbind(data3, data4)
Impact <- bind_rows(YesFR, NoFR)
我收到以下错误:
bind_rows_(x, .id) 中的错误:
列X__2 无法从字符转换为数字
我认为这与数据中的 Undf 字符有关,我需要将其转换为 NA。执行此操作的最简单方法是什么,为什么当我将 data3 与 data4 绑定时不会出现此消息?
【问题讨论】:
-
我猜是,
YesFR中的X_2是数字,NoFR中的X_2是字符(因为您在data4中有“Undf”)。现在dplyr中的bind_rows给出了与第一个输入相同的类型。因此,由于YesFR中的X_2是数字,它会在绑定时尝试将NoFR中的X_2转换为数字,但失败了。试试bind_rows(NoFR, YesFR)看看它是否会抛出同样的错误信息。 -
不看数据就很难判断。尝试:
data4$X__2[data4$X__2=="Undf"] <- NA然后再尝试 rbind -
@user 这给出了错误 在 bind_rows_(x, .id) 中的错误:无法将列 X__2 从数字转换为字符。但是感谢您的解释!
-
@ima 所以它证实了我的猜测,它失败了,因为
X_2在两个数据集中是不同的类型。 @Matt L. 的建议应该解决它。 -
@user : 使用 Matt 的评论能够将 undf 更改为 NA,但是我仍然收到与原始问题中所述相同的错误。