当前位置: 首页 > 知识库问答 >
问题:

如何将一个向量分组成一个向量列表?

赵嘉悦
2023-03-14
dressId        color 
6              yellow 
9              red
10             green 
10             purple 
10             yellow 
12             purple 
12             red 
[[1]]
yellow  

[[2]] 
red    

[[3]] 
green purple yellow 

[[4]] 
purple red 
result <- NULL 
while(blah blah) 
{
    some code which creates the vector called "colors" 
    result[[dressCounter]] <- colors 
    dressCounter <- dressCounter + 1
}

在努力使所有必要的计数变量正确后,我沮丧地发现它不起作用。第一次,颜色

[1] yellow
Levels: green yellow purple red blue

它被强制为一个整数,因此result变成2

在第二个循环重复中,colors只包含红色,result变成一个简单的整数向量,[1]24

[1] green  purple yellow
Levels: green yellow purple red blue 
result[[3]] <- colors

我做错了什么?是否有一种方法可以初始化result,这样它就不会被转换成一个数字向量,而是变成一个向量列表?

还有,除了“滚我自己的”,还有别的办法做整件事吗?

共有1个答案

咸正平
2023-03-14

split.data.frame是一个很好的组织方法;然后提取颜色分量。

d <- data.frame(dressId=c(6,9,10,10,10,12,12),
               color=factor(c("yellow","red","green",
                              "purple","yellow",
                              "purple","red"),
                 levels=c("red","orange","yellow",
                          "green","blue","purple")))

我想你想要的版本实际上是这样的:

ss <- split.data.frame(d,d$dressId)

通过提取color组件,您可以获得更类似于您所请求的列表的内容:

lapply(ss,"[[","color")
 类似资料:
  • 我试图将两个向量的元组包装成C中的元组,但无法解码神秘的编译器错误消息。 以下是代码片段(请原谅我使用指令): 这是Visual Studio 2010中的错误消息 我的代码有什么问题? <罢工>编辑:如果我显式地声明了结果类型,那么它是有效的。 编辑:假警报,如果我声明的类型,它也不会编译。

  • 我有两个大小相等的向量,例如。 我感兴趣的是在两个相同大小的向量A中找到最接近的值(几乎相等) 为了清楚起见,我不想在单个向量中找到最接近的值。上面例子的答案是2.56和2.52。

  • 我用平面图附加通量,但如果我添加其他平面图,则只返回最后一个平面图。 我需要在通量上处理每个Mono函数,但我似乎无法让每个函数正确执行和返回。

  • 我有一个带有私有属性的类,它是一个向量。做getter函数的最佳方法是什么? 返回整个向量:

  • 问题内容: 有没有一种很好的方法来区分python中的行向量和列向量?到目前为止,我正在使用numpy和scipy,到目前为止,我看到的是,如果我要给一个向量,说 他们无法说天气,我的意思是行或列向量。此外: 在“现实世界”中哪一个根本是不正确的。我意识到上述模块中向量上的大多数功能都不需要区分。例如,或者我想为自己的方便而与众不同。 问题答案: 您可以通过向数组添加另一个维度来明确区分。 现在将

  • 注意温度场是一个浮动列表。我希望将这些浮点数列表转换为MLlib类型,并且希望这种转换使用基本的API来表示,而不是通过RDDs(这是低效的,因为它将所有数据从JVM发送到Python,处理是在Python中完成的,我们没有得到Spark的Catalyst优化器yada yada的好处)。我该怎么做?具体来说: 有没有办法让直铸件工作?请参见下面的详细信息(以及一次失败的变通尝试)?或者,是否有其