相关疑难解决方法(0)

如何将矢量划分为常规连续序列组?

我有一个矢量,例如c(1, 3, 4, 5, 9, 10, 17, 29, 30),我想将"相邻"元素组合在一起,形成一个规则的连续序列,在一个参差不齐的矢量中导致:

L1:1
L2:3,4,5
L3:9,10
L4:17
L5:29,30

朴素代码(前C程序员):

partition.neighbors <- function(v)
{
    result <<- list() #jagged array
    currentList <<- v[1] #current series

    for(i in 2:length(v))
    {
        if(v[i] - v [i-1] == 1)
        {
            currentList <<- c(currentList, v[i])
        }
        else
        {
            result <<- c(result, list(currentList))
            currentList <<- v[i] #next series
        }       
    }

    return(result)  
}
Run Code Online (Sandbox Code Playgroud)

现在我明白了

a)R不是C(尽管有大括号)
b)全局变量是纯粹的邪恶
c)这是一种实现结果的非常低效的方法

,欢迎任何更好的解决方案.

r vector data-partitioning

14
推荐指数
4
解决办法
3651
查看次数

R:使用lapply将新列添加到数据框列表中

我已经读过这个并创建了一个lapply函数来为列表中的每个数据帧添加一个"SubCat"列.

这是我的代码:

    my_list <- lapply(1:length(my_list),     
               function(i) cbind(my_list[[i]], my_list[[i]]["SubCat"] <- as.character(""))) 
Run Code Online (Sandbox Code Playgroud)

但得到这个错误:

Error in `[<-.data.frame`(`*tmp*`, "SubCat", value = "") : 
  replacement has 1 row, data has 0 
Run Code Online (Sandbox Code Playgroud)

怎么了?

当我使用它时,它在一个数据框架上工作:

my_list[[1]]["SubCat"] <- as.character("")
Run Code Online (Sandbox Code Playgroud)

更新:

这些是我的数据框的示例,它们都包含相同的结构.SKU的一列和类别的一列.

DataFrame 1:

    row.names       SKU         Tv.y.Video
1   1699        2018143169254P  Tv.y.Video
2   1700        2018143169254   Tv.y.Video
3   1946        2018144678120P  Tv.y.Video
4   1947        2018144678120   Tv.y.Video
5   2366        2018146411831P  Tv.y.Video
6   2367        2018146411831   Tv.y.Video
Run Code Online (Sandbox Code Playgroud)

DataFrame 2:

    row.names   SKU             C?mputo
1     6       2004121460000P    C?mputo
2     7       2004121460000     C?mputo
3     8       2004121440002P …
Run Code Online (Sandbox Code Playgroud)

r

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

标签 统计

r ×2

data-partitioning ×1

vector ×1