小编shu*_*ham的帖子

根据R中的先前行值分配序列中的值

我在这里问了类似这样的问题,并且那里提到的解决方案在那里说的问题工作得很好,但是这个问题比较简单,更难.

我有这样的数据表.

   ID1 member
 1   a parent
 2   a  child
 3   a parent
 4   a  child
 5   a  child
 6   b parent
 7   b parent
 8   b  child
 9   c  child
10   c  child
11   c parent
12   c  child
Run Code Online (Sandbox Code Playgroud)

我想分配一个如下所示的序列,记住ID1成员列.

   ID1 member sequence
 1   a parent        1
 2   a  child        2
 3   a parent        1
 4   a  child        2
 5   a  child        3
 6   b parent        1
 7   b parent        1
 8   b …
Run Code Online (Sandbox Code Playgroud)

r dataframe

12
推荐指数
1
解决办法
1482
查看次数

更快地在R中对数据帧的行进行子集化?

我一直在使用这两种方法来交替使用R中数据框的数据.
方法1
subset_df <- df[which(df$age>5) , ]
方法2
subset_df <- subset(df, age>5)

我有2个问题属于这些问题.
1.考虑到我有非常大的数据,哪一个更快?
这篇文章在R中对数据框进行子集化表明上述两种方法之间存在差异.其中一个准确处理NA.哪一个可以安全使用呢?

r subset dataframe

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

根据R中的前一行按顺序分配值

我有这样的数据表.

  ID1 ID2 member
1   a   x parent
2   a   y  child
3   a   z parent
4   a   p  child
5   a   q  child
6   b   x parent
7   b   z parent
8   b   q  child
Run Code Online (Sandbox Code Playgroud)

我想分配一个如下的序列.

  ID1 ID2 member sequence
1   a   x parent        1
2   a   y  child        2
3   a   z parent        1
4   a   p  child        2
5   a   q  child        3
6   b   x parent        1
7   b   z parent        1
8   b   q  child …
Run Code Online (Sandbox Code Playgroud)

r data.table

6
推荐指数
1
解决办法
771
查看次数

什么是gitignore相当于"一次或多次发生"?

在使用R时,Rstudio会创建所有这些文件:

.Rhistory
.Rapp.history
.Rproj.user /

我希望git忽略这些文件,所以我将它们放在.gitignore中,并在我使用的一行中完成

*.R*
Run Code Online (Sandbox Code Playgroud)

但它也会忽略我不想要的实际.R文件.所以我尝试了下面的正则表达式,

*.R.+
Run Code Online (Sandbox Code Playgroud)

*.R+
Run Code Online (Sandbox Code Playgroud)

但我想在gitignore中还有一些其他等效的点(.用于单字符匹配)或加号(+用于前一个字母的一次或多次出现),我不知道.有人可以帮忙吗?

regex git r

3
推荐指数
1
解决办法
1148
查看次数

仅为数据表中的每个唯一值选择第一个或最后一个值?

我有这样的数据表.

> dt
    ID value
 1   a  v1
 2   a  v2
 3   a  v3
 4   a  v4
 5   a  v5
 6   b  v6
 7   b  v7
 8   b  v8
Run Code Online (Sandbox Code Playgroud)

我想为每个ID只选择一个.它可以是第一个值或最后一个值.我就是这样做的.

unique_id_value_mapping <- dt[, list(new_value=head(.SD[,value],1)), by="ID"]
Run Code Online (Sandbox Code Playgroud)

但对于大型数据表(约10万行),需要花费大量时间.谁知道更快的方法呢?

更新
建议上述问题的答案很好.但是,如果我需要根据某些条件选择值,该怎么办?考虑一个数据表

> dt
    ID value days
 1   a  v1     2
 2   a  v2     4
 3   a  v3     7 *
 4   a  v4     7
 5   a  v5     1
 6   b  v6     5 *
 7   b  v7     4
 8   b  v8 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

标签 统计

r ×5

data.table ×2

dataframe ×2

git ×1

regex ×1

subset ×1