小编Dav*_*cht的帖子

简单总和如果表达

这些是我的样本数据:

dt <- data.table(id=c("a","a","a","a","b","b"), monthsinarrears=c(0,1,0,0,1,0), date=c(2013,2014,2015,2016,2014,2015))
Run Code Online (Sandbox Code Playgroud)

该表如下所示:

> dt
   id monthsinarrears date
1:  a               0 2013
2:  a               1 2014
3:  a               0 2015
4:  a               0 2016
5:  b               1 2014
6:  b               0 2015
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个名为"EverinArrears"的附加列,如果id曾经处于拖欠状态(历史上),则将分配"1",如果不是,则指定为"0".因此我想获得的输出是:

   id monthsinarrears date EverinArrears
1:  a               0 2013             0
2:  a               1 2014             1
3:  a               0 2015             1
4:  a               0 2016             1
5:  b               1 2014             1
6:  b               0 2015             1
Run Code Online (Sandbox Code Playgroud)

请注意,贷款ID a在2013年的历史上并非拖欠(这发生在2014年),因此EverinArrears在2013年也获得0零.

conditional r sum data.table

10
推荐指数
2
解决办法
686
查看次数

根据条件复制data.table中的行

我的示例data.table如下所示

启动数据

library(data.table)
x <- data.table(id = as.character(c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3)),
            time = as.character(c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5)),
            status = c("P", "R", "R", "R", "R", "P", "P", "P", "R", "R", "P", "P", "R", "R", "R"),
            balance = c(100, 90, 80, 70, 60, 320, 300, 250, 200, 100, 40, 34, 31, 29, 10),
            employment = c("Y", "Y", "Y", "N", "N", "N", "N", "N", "N", "Y", "N", "Y", "Y", "Y", "Y")
)
Run Code Online (Sandbox Code Playgroud)

目标是在状态从"P"迁移到"R"并通过"id"复制列平衡和就业中的信息.即我想使用id为"P"的最后一个时段中的数据,并覆盖id为"R"的所有下一个时段的现有信息.

因此,目标是获得此数据.表格

目标

Y <- data.table(id = as.character(c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3)),
            time = as.character(c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5)),
            status =     c("P", "R", "R", "R", …
Run Code Online (Sandbox Code Playgroud)

r data.table

8
推荐指数
2
解决办法
1289
查看次数

在另一个字符串中查找字符串的一部

如何在另一个字符串中找到字符串的一部分.您可以在下面找到一些示例数据:

a <- c("23,45,24,67,91,10")
b <- c("as.01,as.23,as55,as69")
Run Code Online (Sandbox Code Playgroud)

目标是找到ain的任何子串b.因此,这应该返回TRUE,因为23存在a于其中b.我已经尝试过诸如此类的功能

charmatch
grepl
match 
Run Code Online (Sandbox Code Playgroud)

但所有这些似乎都不符合我的目的.任何帮助表示赞赏!

regex string r

1
推荐指数
2
解决办法
124
查看次数

标签 统计

r ×3

data.table ×2

conditional ×1

regex ×1

string ×1

sum ×1