小编Rub*_*ben的帖子

R:按组插入 NA

我想在数据帧的变量中执行线性插值,其中考虑到:1)两点之间的时间差,2)获取数据的时刻以及 3)为测量变量而采取的个人。

例如在下一个数据框中:

 df <- data.frame(time=c(1,2,3,4,5,6,7,1,2,3),
            Individuals=c(1,1,1,1,1,1,1,2,2,2),
            Value=c(1, 2, 3, NA, 5, NA, 7, 5, NA, 7))
  df
Run Code Online (Sandbox Code Playgroud)

我想获得:

 result <- data.frame(time=c(1,2,3,4,5,6,7,1,2,3),
                Individuals=c(1,1,1,1,1,1,1,2,2,2),
                Value=c(1, 2, 3, 4, 5, 6, 7, 5, 5.5, 6))
 result
Run Code Online (Sandbox Code Playgroud)

我不能完全使用na.approx包的功能,zoo因为所有观察都不是连续的,一些观察属于一个人,其他观察属于其他人。原因是因为如果第二个人将第一次观察到NA而我将专门使用该功能na.approx,我将使用来自 的信息individual==1来插入NAindividual==2(例如,下一个数据帧将有此类错误)

  df_2 <- data.frame(time=c(1,2,3,4,5,6,7,1,2,3),
                Individuals=c(1,1,1,1,1,1,1,2,2,2),
                Value=c(1, 2, 3, NA, 5, NA, 7, NA, 5, 7))
  df_2
Run Code Online (Sandbox Code Playgroud)

我试过使用这些包zoodplyr

library(dplyr)
library(zoo)
proof <- df %>%
  group_by(Individuals) %>%
  na.approx(df$Value)
Run Code Online (Sandbox Code Playgroud)

但我不能 …

group-by r linear-interpolation zoo dplyr

7
推荐指数
2
解决办法
5007
查看次数

提取树状图或群集中节点的层次结构

我想提取树状图或群集的节点的层次结构。

例如,在下一个示例中:

library(dendextend)
dend15 <- c(1:5) %>% dist %>% hclust(method = "average") %>% as.dendrogram
dend15 %>% plot
Run Code Online (Sandbox Code Playgroud)

根据节点在树状图中的位置对其进行分类(请参见下图)

在此处输入图片说明

(图摘自dendextend包的教程)

我想获取每个最终叶子的所有节点作为下一个输出:(标签从左到右,从下到上排序)

        hierarchical structure
leaf_1: 3-2-1
leaf_2: 4-2-1
leaf_3: 6-5-1
leaf_4: 8-7-5-1
leaf_5: 9-7-5-1
Run Code Online (Sandbox Code Playgroud)

提前致谢,

treenode r hierarchical-clustering dendextend

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

提取符合条件的第一行,第二行和最后一行

我想知道如何提取遵循标准的最后一行.我已经看到了通过下一个链接中的"复制"功能获取第一个的解决方案如何选择满足特定条件的R数据帧中的第一行?.

但是,是否可以获得符合标准的第二行或最后一行?

我想为每个循环Class(这里我只放两个)并选择符合标准的第一行,第二行和最后一行Weight >= 10.如果没有符合获得NA标准的行.

最后,我想将三个值(第一行,第二行和最后一行)存储在包含每个类的值的列表中.

   Class Weight
1      A     20
2      A     15
3      B     10
4      B     23
5      A     11
6      B     12
7      B     11
8      A     25
9      A      7
10     B      3
Run Code Online (Sandbox Code Playgroud)

r

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

R将日期列转换为格里高利历

我想将数据帧的列转换为格里高利日期.例如,以下数据帧:

       Date_R Tmax
1  1985-01-01  9.0
2  1985-02-02  9.0
3  1985-12-31 11.0
4  1986-01-04  8.5
5  1986-01-05 11.0
Run Code Online (Sandbox Code Playgroud)

成:

  Date_R Tmax
1      1  9.0
2     33  9.0
3    365 11.0
4      4  8.5
5      5 11.0
Run Code Online (Sandbox Code Playgroud)

或者添加包含此信息的新列.

提前致谢

r gregorian-calendar

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