小编Eli*_*isa的帖子

计算唯一的值组合

我的数据框看起来像这样:

ID | value 1 | value 2 | value 3 | value 4
1  |    M    |    D    |    F    |   A
2  |    F    |    M    |    G    |   B
3  |    M    |    D    |    F    |   A
4  |    L    |    D    |    E    |   B
Run Code Online (Sandbox Code Playgroud)

我想得到这样的东西.

value 1 | value 2 | value 3 | value 4|  Number of combinations
  M     |    D    |    F    |   A    |     2
  F     |    M    |    G    | …
Run Code Online (Sandbox Code Playgroud)

combinations r unique

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

R重塑,通过块重构数据帧

我正在尝试重塑数据帧:

目前它看起来像这样:

ID   | Gender |A1 | A2 | A3 | B1 | B2 | B3
ID_1 | m      | 3 | 3  | 3  | 2  | 3  | 2 
ID_2 | f      | 1 | 1  | 1  | 4  | 4  | 4
Run Code Online (Sandbox Code Playgroud)

我希望有类似的东西:

 ID   | Gender | A1 | A2 | A3
 ID_1 | m      | 3  | 3  |  3   <- this would be columns A1 - A3 for ID 1
 ID_1 | m      | …
Run Code Online (Sandbox Code Playgroud)

r chunks reshape data-management dataframe

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

R中的无限功能/循环:数据管理

我正在尝试重构一个巨大的数据帧(大约12.000个案例):在旧的数据帧中,一个人是一行,有大约250列(例如人1,测试A1,testA2,testB,......),我想要所有的结果测试A(1 - 10 A的总体和24个项目(AY)在一列中的那个人,所以一个人最终有24列和10行.在AY项目开始之前还有一个固定的数据框部分(个人)像年龄,性别等信息,我希望保持原样(fixdata).函数/循环适用于30个案例(我提前尝试过)但是对于12.000它仍然在计算,现在将近24小时.有什么想法吗?

restructure <- function(data, firstcol, numcol, numsets){
    out <- data.frame(t(rep(0, (firstcol-1)+ numcol)) )
    names(out) <- names(daten[0:(firstcol+numcol-1)])
      for(i in 1:nrow(daten)){
         fixdata <- (daten[i, 1:(firstcol-1)])

          for (j in (seq(firstcol, ((firstcol-1)+ numcol* numsets), by = numcol))){
              flexdata <- daten[i, j:(j+numcol-1)]
              tmp <- cbind(fixdata, flexdata)
              names(tmp) <- names(daten[0:(firstcol+numcol-1)])
              out <- rbind(out,tmp)
          }  
      }
    out <- out[2:nrow(out),]
    return(out)
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

for-loop r function large-data data-management

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

重塑一列中值的数据

我的data.frame看起来像这样

ID | test | test_result
1  |  B   |   10
2  |  A   |   9
3  |  A   |   11
4  |  C   |   7
5  |  F   |   5
Run Code Online (Sandbox Code Playgroud)

我希望得到这样的东西:

test | test_reult_ID1 | test_result_ID2 | test_result_ID3 ...
 A   |   NA           |     9           |   11
 B   |   10           |     NA          |   NA
Run Code Online (Sandbox Code Playgroud)

它使用reshape()到宽格式,只有少数情况,但整个数据框(大约23.000 ID)reshape()需要太长时间.Melt()和cast()会对数据进行重新整形,但会将test_result中的值替换为测试频率.任何其他想法如何管理?谢谢!

r reshape dataframe melt

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