【发布时间】:2017-08-19 05:40:53
【问题描述】:
请帮帮我! 我有相当大的包含银行账户的数据集
它的组织方式如下:
V1- 银行的注册号
V2- 账户价值记录日期
V3- 帐号所有剩余的
V-s 用于值本身(在 cur、metals 等中)
我需要通过帐号进行过滤,保留表中的所有内容,但针对特定的 acc 号码。这是我使用的代码:
filelist = list.files(pattern = ".txt")
datalist = lapply(filelist, function(x)read.table(x, header=FALSE, sep = ";"))
all_data = do.call("rbind", datalist)
r_d <- rename(all_data, c("V1"="Number", "V2"="Dates", "V3"="Account"))
r_d$Account <- as.character(r_d$Account)
f_d <- filter(all_data, r_d$Account >= 42301 & r_d$Account <= 42315 |
r_d$Account >= 20202 & r_d$Account <= 20210 |
r_d$Account == 98010 | r_d$Account == 98015)
问题是这段代码的输出是一个只包含NAs 的表,所有内容都变成了NA,即使这些acc 数字存在,我对此非常确定。
如果我在过滤器中使用 Account 而不是 r_d$Account,R 会告诉我对象 Account 不存在。我也不明白。
请纠正我。
【问题讨论】:
-
如果您使用的过滤器功能来自包
dplyr,请尝试删除“r_d$”并只写不带引号的帐户,如下所示:filter(all_data, Account >= 42301 ... -
在这种情况下,虽然@PLapointe 的建议是有效的,但代码的工作原理是一样的;当您的中间管道功能更改 data.frame 时,它不会起作用。但是,由于这不是reproducible question,我们无能为力。问题:(1)数据副
dput(head(data,n=10))的图片; (2)rename的使用不正确; (3) 不建议使用filter; (4) 你显示filelist但它在这里是否相关? -
顺便说一句:基于您将帐号视为序数副分类,您的某些过滤将受益于
%in%和dplyr::between函数,可以说使您的过滤器更易于阅读。跨度> -
如果我在过滤器中使用 Account 而不是 r_d$Account,R 会告诉我对象 Account 不存在。我也不明白。
-
为什么重命名功能不正确?然后我猜问题从这里开始,R 不明白要过滤什么,这就是为什么只给我 NA-s,对吗?