小编Dhe*_*ngh的帖子

在r中为每个组创建日期序列

我有一个如下所示的数据集:

      ID    created_at
MUM-0001    2014-04-16
MUM-0002    2014-01-14
MUM-0003    2014-04-17
MUM-0004    2014-04-12
MUM-0005    2014-04-18
MUM-0006    2014-04-17
Run Code Online (Sandbox Code Playgroud)

我正在尝试引入新列,该列将是开始日期和定义的最后一天之间的所有日期(例如,2015年7月12日).我使用了seq函数dplyr但是出错了.

data1 <- data1 %>%
         arrange(ID) %>%
         group_by(ID) %>%
         mutate(date = seq(as.Date(created_at), as.Date('2015-07-12'), by= 1))
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

错误:大小不兼容(453),期望1(组大小)或1

你能否建议一些更好的方法在R中执行这项任务?

r date seq dplyr

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

将r替换为r中每个组的相同列的另一行中的值

对于每个组的给定列,我需要用不同行的非NA值替换每行的NA

让我们说样本数据如:

id   name
 1     a
 1     NA
 2     b
 3     NA
 3     c
 3     NA
Run Code Online (Sandbox Code Playgroud)

期望的输出:

id   name
 1     a
 1     a
 2     b
 3     c
 3     c
 3     c
Run Code Online (Sandbox Code Playgroud)

有没有办法在r中执行此操作?

r

5
推荐指数
2
解决办法
2876
查看次数

如何为R中的每个组选择第2行和第3行

我需要为数据框中的每个组选择第2和第3个条目.我一直在尝试,但得到一个错误.

样本数据:

USER.ID   restaurant
3            aaaa
3            ababa
3            asddw
4            bbbb
4            wedwe
2            ewedw
1            qwqw
1            dwqd
1            dqed
1            ewewq
Run Code Online (Sandbox Code Playgroud)

期望的输出:

USER.ID    2nd_restaurant   3rd_restaurant
3            ababa             asddw
3            ababa             asddw
3            ababa             asddw
4            wedwe             NA
4            wedwe             NA
2            NA                NA
1            dwqd              dqed
1            dwqd              dqed
1            dwqd              dqed
1            dwqd              dqed
Run Code Online (Sandbox Code Playgroud)

我尝试使用dplyr,但我想由于数据量巨大,计算时间很长.有没有办法更有效地计算它?

我的代码:

data1 <- data %>%
arrange(USER.ID) %>%
group_by(USER.ID) %>%
mutate(second_restaurant = data[2,11]) %>%
mutate(third_restaurant = data[3,11])
Run Code Online (Sandbox Code Playgroud)

11是原始数据集中的餐馆的列号.

r dataframe dplyr

4
推荐指数
1
解决办法
1990
查看次数

通过匹配日期合并2个数据帧

我有两个数据帧:

id      dates
MUM-1  2015-07-10
MUM-1  2015-07-11
MUM-1  2015-07-12
MUM-2  2014-01-14
MUM-2  2014-01-15
MUM-2  2014-01-16
MUM-2  2014-01-17
Run Code Online (Sandbox Code Playgroud)

和:

id      dates      field1  field2
MUM-1  2015-07-10     1       0
MUM-1  2015-07-12     2       1
MUM-2  2014-01-14     4       3
MUM-2  2014-01-17     0       1
Run Code Online (Sandbox Code Playgroud)

合并数据:

id      dates        field1   field2
MUM-1  2015-07-10      1         0
MUM-1  2015-07-11      na        na
MUM-1  2015-07-12      2         1
MUM-2  2014-01-14      4         3
MUM-2  2014-01-15      na        na
MUM-2  2014-01-16      na        na
MUM-2  2014-01-17      0         1   
Run Code Online (Sandbox Code Playgroud)

码: merge(x= df1, y= df2, by= 'id', all.x= T) …

merge r dataframe dplyr

4
推荐指数
2
解决办法
3万
查看次数

python中使用cv2.calcHist的目录中多个图像的颜色直方图

我是计算机视觉的新手,这是我的第一个任务。我正在尝试创建rgb histogram对应于文件夹中的每个图像。假设我在test文件夹中有 10 张图像(在我当前的工作目录中)。我想为每个图像创建 10 个直方图。我写了以下脚本:

import os
import cv2
import numpy as np
from matplotlib import pyplot as plt
import pylab
images = []
for image in os.listdir("./test/"): 
    images.append(image)
color = ('b','g','r')
for image in images:
    img = cv2.imread(image) 
    for i, col in enumerate(color):
        hist = cv2.calcHist([img], [i], None, [256], [0,256])
        plt.plot(hist, color = col)
        plt.xlim([0,256])
        pylab.savefig(image)
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,我收到以下错误:

OpenCV Error: Assertion failed (j < nimages) in histPrepareImages, file /../../OpenCV/opencv-2.4.13/modules/imgproc/src/histogram.cpp, line 148
Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

python opencv matplotlib histogram computer-vision

4
推荐指数
1
解决办法
3636
查看次数

r中显式行的行号

我需要为id分组的显式行获取行号.假设dataframe(df)如下所示:

 id  a   b 
 3   2   NA
 3   3   2
 3   10  NA
 3   21  0
 3   2   NA
 4   1   5
 4   1   0
 4   5   NA
Run Code Online (Sandbox Code Playgroud)

我需要创建一个列,它将给出行号序列,不​​包括大小写b == 0.

期望的输出:

 id  a   b   row
 3   2   NA   1
 3   3   2    2
 3   10  NA   3
 3   21  0    -
 3   2   NA   4
 4   1   5    1
 4   1   0    -
 4   5   NA   2
Run Code Online (Sandbox Code Playgroud)

我使用dplyr但无法实现相同,我的代码:

df <- df %>%
       group_by(id) %>%
       mutate(row = row_number(id[b …
Run Code Online (Sandbox Code Playgroud)

r row-number dataframe dplyr

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