首页 > 解决方案 > R:是否可以将数据“复制/粘贴”到 R 中?

问题描述

我正在使用 R 编程语言。假设我在 Internet 浏览器中看到以下格式的数据(例如在 stackoverflow 问题上):

weight   height age
1  2998.958 15.26611  53
2  3002.208 18.08711  52
3  3008.171 16.70896  49
4  3002.374 17.37032  55
5  3000.658 18.04860  50
6  3002.688 17.24797  45
7  3004.923 16.45360  47
8  2987.264 16.71712  47
9  3011.332 17.76626  50
10 2983.783 18.10337  42
11 3007.167 18.18355  50
12 3007.049 18.11375  53
13 3002.656 15.49990  42
14 2986.710 16.73089  47
15 2998.286 17.12075  52

问题:是否可以将这些数据带入R并直接将这些数据制成数据框(无需重新格式化或最小重新格式化)?

显然,下面的语句是行不通的:

my_data <- data.frame(weight   height age
                      1  2998.958 15.26611  53
                      2  3002.208 18.08711  52
                      3  3008.171 16.70896  49
                      4  3002.374 17.37032  55
                      5  3000.658 18.04860  50
                      6  3002.688 17.24797  45
                      7  3004.923 16.45360  47
                      8  2987.264 16.71712  47
                      9  3011.332 17.76626  50
                      10 2983.783 18.10337  42
                      11 3007.167 18.18355  50
                      12 3007.049 18.11375  53
                      13 3002.656 15.49990  42
                      14 2986.710 16.73089  47
                      15 2998.286 17.12075  52)

目前,我正在手动执行此操作,例如

weight <- c("2998.958", "3002.208", "3008.171", etc. )
height <- c("15.26611", etc. )
age <- c("53", "52", etc.)

my_data <- data.frame(weight, height, age)

有没有更“直接”(即更快的方式)来做到这一点?

谢谢!

标签: rdata-manipulation

解决方案


而不是data.frame. 您可以将其传递给read.table

read.table(text="weight   height age
1  2998.958 15.26611  53
2  3002.208 18.08711  52
3  3008.171 16.70896  49
4  3002.374 17.37032  55
5  3000.658 18.04860  50
6  3002.688 17.24797  45
7  3004.923 16.45360  47
8  2987.264 16.71712  47
9  3011.332 17.76626  50
10 2983.783 18.10337  42
11 3007.167 18.18355  50
12 3007.049 18.11375  53
13 3002.656 15.49990  42
14 2986.710 16.73089  47
15 2998.286 17.12075  52", header=TRUE)

如果数据在剪贴板上,您可以执行

read.table("clipboard", header=TRUE)

推荐阅读