在一个单元格中创建带有矢量元素的数据框-Rstudio

时间:2019-07-08 11:24:57

标签: dataframe vector indexing rstudio element

我是R的新手,我认为这很容易,但是我没有找到具体的答案。我正在尝试仅使用称为path.vec的一列来复制数据帧df,该列正在收集矢量元素的路径。 df中该path.vec的每个单元格可以是向量的简单元素或元素的向量。

#这是路径的示例

vector <- c("apple", "banana", "melon") 

#以下是我每个单元格矢量的一个元素

df <- data.frame(
  path.vec = c("apple", "banana", "melon")
)

#将路径添加到矢量

**#我已经尝试过以下代码中的append(),但这会将我的向量每行拆分为1个元素,而我想保留路径,当路径存在时,将它们一起放在一个单元格中**

append(path.vec, vector, after = length(path.vec) ) 

[1] "apple" "banana" "melon" "apple" "banana" "melon" "apple" "banana" "melon"

最终我想要类似的东西

path.vec = c("apple","banana","melon", c("apple", "banana", "melon"))
   [1] `"apple"  "banana" "melon"  c("apple", "banana", "melon")  '

   path.vec
 1 apple
 2 lemon
 3 melon
 4 c("appple", "banana", "melon")

我需要此数据帧作为已经完全按照这种结构构造的真实数据帧的可复制示例,在这里我需要研究元素向量中特定元素的索引。

谢谢!

1 个答案:

答案 0 :(得分:0)

仅供所有人参考,我已经使用list()解决了这个问题:

       df_1 <- data.frame(id=1:4,
           path.vec = I(list("apple", "lemon", "melon",c("apple", "banana","melon")))

                        ) 

列表列必须包装在函数I中。这将保护它免受data.frame中发生的多次转换的影响,并确保矩阵作为单个列插入。

输出:

id  path.vec
1   apple
2   lemon
3   melon
4   c("apple", "banana", "melon")

谢谢!