将向量插入R中数据帧的特定单元格

时间:2017-03-28 10:17:45

标签: r

我在R中遇到一个小情况。

我有一个数据框如下:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
    //success
    var directoryEntry = fileSystem.root; // to get root path of directory
    //create directory
    directoryEntry.getDirectory("media", { create: true, exclusive: false }, function(parent) {
              //directory created successfully
                console.log("/media created");
            }, function(parent) {
              //failed to create directory
                console.log('no folder created');
            }); });

我想在数据框的特定单元格中插入一个矢量c(1,2,3)。

例如,替换后的数据框应该类似于:

                 age
numCategories      9
signFeatures      NA
nullDeviance      NA
residualDeviance  NA
aic               NA

我尝试过以下操作:

                  age
numCategories      9
signFeatures      c(1,2,3)
nullDeviance      NA
residualDeviance  NA
aic               NA

它给我带来同样错误的时间:

df['signFeatures', 'age'] <- c(1,2,3) &
df['signFeatures', 'age'] <- Vectorize(c(1,2,3))

替换有3行,数据有1个

我理解这个问题,但无法找到解决问题的方法。

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

就像上面提到的Andrew一样,数据框的每一列都必须具有相同的类,因此您可以录制上面所需表格的转置版本:

data <- data.frame(numCategories = 9)
data$signFeatures <- list(c(1,2,3))
data$nullDeviance <- rnorm(1)
data$residualDeviance <- rnorm(1)
data$aic <- rnorm(1)

答案 1 :(得分:0)

好吧,我不知道数据帧是否可行,但是Tibbles是否可行。

这是使用mutate()case_when()的方法:

library(dplyr)
library(tidyr)

df = tibble(Type = c("numCategories", "signFeatures", "nullDeviance", "residualDevian","aic"),
           age = NA
            ) %>% mutate(age =  case_when(Type == "numCategories" ~ list(9),
                                          Type == "signFeatures" ~ list(c(1,2,3))
                                          )
                         )

您可以按以下方式分别打印结果:

df[2,"age"][[1]] %>% unlist()
## [1] 1 2 3