r - 在一次 `mutate` 调用中创建的列是否有限制?
问题描述
我目前正在重组一个应用程序,它为某个主题提供数据。目前我正在为闪亮的应用程序设计新脚本的结构,它运行良好。在我继续完成工作之前,我想问一下是否有人在创建包含许多mutate
语句的新列时遇到问题?最后,我可能会有100多个,我不确定是否应该拆分它。
感谢您的一些答案!
解决方案
我怀疑有限制。它适用于创建至少 1000 个新列:
# Attach the dplyr package for tibble() and mutate()
library(dplyr)
# Create a dummy tibble
example_data <- tibble(x = 1:100)
# We'll do the mutate call by creating a text string and using eval()
# (saves some typing)
call_text <- paste(paste0("x", 1:1000, " = x * ", 1:1000), collapse = ", ")
call_text <- paste0("example_data %>% mutate(", call_text, ")")
# Sanity check on the call:
substr(call_text, 1, 60)
# [1] "example_data %>% mutate(x1 = x * 1, x2 = x * 2, x3 = x * 3, " # looks OK
example_data <- eval(parse(text = call_text))
# Examine the result
example_data
# A tibble: 100 x 1,001
x x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12
<int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 1 2 3 4 5 6 7 8 9 10 11 12
2 2 2 4 6 8 10 12 14 16 18 20 22 24
3 3 3 6 9 12 15 18 21 24 27 30 33 36
4 4 4 8 12 16 20 24 28 32 36 40 44 48
5 5 5 10 15 20 25 30 35 40 45 50 55 60
6 6 6 12 18 24 30 36 42 48 54 60 66 72
7 7 7 14 21 28 35 42 49 56 63 70 77 84
8 8 8 16 24 32 40 48 56 64 72 80 88 96
9 9 9 18 27 36 45 54 63 72 81 90 99 108
10 10 10 20 30 40 50 60 70 80 90 100 110 120
# … with 90 more rows, and 988 more variables: x13 <dbl>, x14 <dbl>, x15 <dbl>,
# x16 <dbl>, x17 <dbl>, x18 <dbl>, x19 <dbl>, x20 <dbl>, x21 <dbl>, x22 <dbl>,
# x23 <dbl>, x24 <dbl>, x25 <dbl>, x26 <dbl>, x27 <dbl>, x28 <dbl>, x29 <dbl>,
# x30 <dbl>, x31 <dbl>, x32 <dbl>, x33 <dbl>, x34 <dbl>, x35 <dbl>, x36 <dbl>,
# x37 <dbl>, x38 <dbl>, x39 <dbl>, x40 <dbl>, x41 <dbl>, x42 <dbl>, x43 <dbl>,
# x44 <dbl>, x45 <dbl>, x46 <dbl>, x47 <dbl>, x48 <dbl>, x49 <dbl>, x50 <dbl>,
# x51 <dbl>, x52 <dbl>, x53 <dbl>, x54 <dbl>, x55 <dbl>, x56 <dbl>, x57 <dbl>,
# x58 <dbl>, x59 <dbl>, x60 <dbl>, x61 <dbl>, x62 <dbl>, x63 <dbl>, x64 <dbl>,
# x65 <dbl>, x66 <dbl>, x67 <dbl>, x68 <dbl>, x69 <dbl>, x70 <dbl>, x71 <dbl>,
# x72 <dbl>, x73 <dbl>, x74 <dbl>, x75 <dbl>, x76 <dbl>, x77 <dbl>, x78 <dbl>,
# x79 <dbl>, x80 <dbl>, x81 <dbl>, x82 <dbl>, x83 <dbl>, x84 <dbl>, x85 <dbl>,
# x86 <dbl>, x87 <dbl>, x88 <dbl>, x89 <dbl>, x90 <dbl>, x91 <dbl>, x92 <dbl>,
# x93 <dbl>, x94 <dbl>, x95 <dbl>, x96 <dbl>, x97 <dbl>, x98 <dbl>, x99 <dbl>,
# x100 <dbl>, x101 <dbl>, x102 <dbl>, x103 <dbl>, x104 <dbl>, x105 <dbl>,
# x106 <dbl>, x107 <dbl>, x108 <dbl>, x109 <dbl>, x110 <dbl>, x111 <dbl>,
# x112 <dbl>, …
推荐阅读
- c# - 测试是否可以在参数列表上调用通用方法
- java - Quartz 产生未处理的空指针异常
- android - onSaveInstanceState 在 onDestroyView 之后调用
- c++ - 当分配失败时,C++ allocator::allocate 应该抛出还是返回 nullptr?
- linux - 在 bash 中解析标准输出
- c - 使用 fwrite 存储在文本文件中的数据在 C 中是不可读的
- mongodb - 在 Spring Data 中查询投影内的数组
- java - 如何解决:E/Volley:[230] BasicNetwork.performRequest:http://192.168.43.83/test.php 的意外响应代码 403
- powershell - 用于为 Azure 数据工厂构建 CI/CD 的 Powershell 脚本
- reactjs - 从 API 中提取数据到 react-bootstrap-table-2