我在这个主题上看过类似的帖子,但无法理解解决方案.基本上我有一个数据表(DT1)与分数和一些NA.只要有'NA',我想要一个引用另一个数据(DT2)表的过程,该表在两个表(通道)中都有一个公共列,然后使用DT2的得分列值更新DT1中的NA.我正在选择一个数据表类,因为我认为它是一个有效的选择.
DT1
tract CreditScore
1: 36107020401 635
2: 36083052403 NA
3: 36091062602 NA
4: 36067013000 NA
5: 36083052304 NA
Run Code Online (Sandbox Code Playgroud)
DT2
tract CreditScore
1: 36107020401 635
2: 36083052403 650
3: 36091062602 335
4: 36067013000 777
5: 36083052304 663
Run Code Online (Sandbox Code Playgroud) 我有一个类似于下面的数据集:
SSN Auto MtgHe Personal Other None
A 1 1 0 0 0
B 1 1 0 0 0
C 1 0 0 0 0
D 1 0 1 1 0
E 0 0 0 0 1
F 0 0 0 0 1
G 0 0 0 0 1
Run Code Online (Sandbox Code Playgroud)
SSN是人,Auto,MtgHe,Personal,Other是贷款类别,'None'表示没有贷款.共有15种独特的可能贷款组合加上另外1种"无"的可能性,表示不存在贷款.因此,一个人可能只有汽车贷款,汽车和个人贷款,或者根本没有贷款.我想要一些具有不同组合的SSN.使用上面的表格结果如下:
Cnt Auto MtgHe Personal Other None
2 1 1 0 0 0
1 1 0 0 0 0
1 1 0 1 1 0
3 0 0 0 0 1 …Run Code Online (Sandbox Code Playgroud) 我有一个包含许多数据帧的List.每个数据框都包含重复的列.我想只返回每个数据帧中的唯一列.我尝试了几个代码,包括下面的代码,但仍然会出错.我目前使用的代码如下,并列出了我的列表中第一个数据帧的描述.我感谢任何帮助.
x <- lapply(dataFiles, function(x){
for(i in 1:length(colnames(dataFiles)))
dataFiles[[!duplicated(dataFiles[[i]])]]
}
)
str(dataFiles[[1]])
'data.frame': 20381 obs. of 10 variables:
$ FILEID : chr "ACSSF" "ACSSF" "ACSSF" "ACSSF" ...
$ FILETYPE : num 2.01e+08 2.01e+08 2.01e+08 2.01e+08 2.01e+08 ...
$ STUSAB : chr "ny" "ny" "ny" "ny" ...
$ CHARITER : int 0 0 0 0 0 0 0 0 0 0 ...
$ SEQUENCE : int 1 1 1 1 1 1 1 1 1 1 ...
$ LOGRECNO : int …Run Code Online (Sandbox Code Playgroud) 我想使用datatable的frank函数按id排列日期列.但是,我的排名似乎只考虑了日期列而不是与之对应的id.我还收到其中6个我不确定的警告:
1 ..... 6:In [.data.table(dups ,, :=(rank,frank(dups,date,ties.method ="average")),:RHS 1长度为10(大于第6组的大小(1))最后9个元素将被丢弃.
dups <- data.table (id = c('11', '11', '11', '22','22',
'88', '99','44','44', '55'),
date = mdy(c("1-01-2016", "1-02-2016", "1-02-2016","2-01-2016",
"2-02-2016")))
so.sample <- dups[, rank := frank(dups, date, ties.method = "average"), by = id]
Run Code Online (Sandbox Code Playgroud)
例如,id = 11和date = 2016-01-01应该排名为1而不是1.5,因为该组合只有一个id和date.
请求帮助
我的目标是通过zip计算组%列.我通过zip创建了%列,但继续丢失我的组('cgrp')变量.我怎样才能在最终结果中保留这个?
我的数据表脚本给出了以下结果:
zip V1
1: 12007 19.35484
2: 12007 48.38710
3: 12007 32.25806
4: 12008 40.00000
5: 12008 41.66667
6: 12008 18.33333
Run Code Online (Sandbox Code Playgroud)
但我也希望cgrp包括这个专栏.一直在尝试不同的组合.SD和SDcols,但它不能得到work.This就是我想要的:
zip V1 cgrp
1: 12007 19.35484 3
2: 12007 48.38710 4
3: 12007 32.25806 1
4: 12008 40.00000 1
5: 12008 41.66667 4
6: 12008 18.33333 3
Run Code Online (Sandbox Code Playgroud)
脚本:
zip.grp <- ninefive[, .(zgrp = .N), by = .(cgrp,zip)
][, 100 *(zgrp/sum(zgrp)), by = zip]
Run Code Online (Sandbox Code Playgroud)
样本九个数据:
zip lower avg upper SSN RISK idk …Run Code Online (Sandbox Code Playgroud) 数据集:
zip acs.pop napps pperct cgrp zgrp perc
1: 12007 97 2 2.0618557 2 1 25.000000
2: 12007 97 2 2.0618557 NA 2 50.000000
3: 12007 97 2 2.0618557 1 1 25.000000
4: 12008 485 2 0.4123711 2 1 33.333333
5: 12008 485 2 0.4123711 4 1 33.333333
6: 12008 485 2 0.4123711 NA 1 33.333333
7: 12009 7327 187 2.5522042 4 76 26.206897
8: 12009 7327 187 2.5522042 1 41 14.137931
9: 12009 7327 187 2.5522042 2 23 7.931034 …Run Code Online (Sandbox Code Playgroud) r ×6
data.table ×3
combinations ×1
dataframe ×1
duplicates ×1
include ×1
list ×1
rank ×1
reference ×1
reshape ×1
subset ×1
unique ×1