r - 从现有数据框动态创建新数据框

标签 r dataframe

我必须从一个我不知道先验的数据框创建一个新的数据框。

新数据框应与旧数据框具有相同的结构,但它应该是空的。

例子

假设旧数据框如下:

> c1 = c(1,2,3)
> c2 = c("str1", "str2", "str3")
> c3 = c(3.2, 2.4, 5.6)
> m <- data.frame(c1,c2,c3)
> m
  c1   c2  c3
1  1 str1 3.2
2  2 str2 2.4
3  3 str3 5.6
> names(m) <- c("var1", "var2", "var3")
> m
  var1 var2 var3
1    1 str1  3.2
2    2 str2  2.4
3    3 str3  5.6

新的数据框应该是这样的:

newDat <- data.frame("var1" = as.numeric(), "var2" = as.character(), "var3" = as.numeric())

关键是我不知道现有的数据框(m)是怎么制作的

最佳答案

不从原始数据框中取任何行:

> testDat = m[FALSE,]

这与您的 newDat 示例略有不同,因为我的 testDat 有一个因子列,它仍然具有原始因子的水平:

> str(testDat)
'data.frame':   0 obs. of  3 variables:
 $ var1: num 
 $ var2: Factor w/ 3 levels "str1","str2",..: 
 $ var3: num 

如果这不是问题,那么工作就完成了,如果这是一个问题,那么您可能需要遍历变量并重置任何因素...

关于r - 从现有数据框动态创建新数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37087578/

相关文章:

r - glmnet 4.0 负二项式回归 : "Error in seq.default(log(lambda_max), log(lambda_max * lambda.min.ratio), : ' from' must be a finite number"

python - 如何用另一个数据框中的行减去数据框中的所有行?

r - 如果组具有特定值(查看前一个值),则保留组的行

python - 有条件地连接 groupby 聚合函数中的字符串

r - geom_tile单色为0,然后是色标

r - 选项卡上的显示/隐藏按钮选择 R Shiny

r - 在R中安全创建S3泛型

python - 迭代数据框中的行,对每行执行计算并将答案放入新列中

python - 删除行和 ValueError 数组的长度不同

R - R6 类作为严格的 "read-only"数据结构