我在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个
我理解这个问题,但无法找到解决问题的方法。
任何帮助将不胜感激
答案 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