這個問題在這里已經有了答案: 將資料從堆疊溢位查詢匯入 R 的代碼 (4 個回答) 1 小時前關閉。
我正在使用 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)
有沒有更“直接”(即更快的方式)來做到這一點?
謝謝!
uj5u.com熱心網友回復:
而不是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)
uj5u.com熱心網友回復:
更簡單的選擇是復制行 ( Cntrl C) 然后使用soread
library(overflow)
soread()
data.frame “mydf” created in your workspace
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
...
檢查
> str(mydf)
'data.frame': 15 obs. of 3 variables:
$ weight: num 2999 3002 3008 3002 3001 ...
$ height: num 15.3 18.1 16.7 17.4 18 ...
$ age : int 53 52 49 55 50 45 47 47 50 42 ...
如果我們想將其重命名為不同的物件,請更改out默認情況下的“mydf”
soread(out = "df1")
因為基于的用法?soread是
soread( sep = "", header = TRUE, stringsAsFactors = FALSE, skipAfterHeader = NULL, out = "mydf" )
它可以從安裝github上有
source("http://news.mrdwab.com/install_github.R")
install_github("mrdwab/overflow-mrdwab")
uj5u.com熱心網友回復:
這在基數 R 中很容易,text=引數為read.table:您需要指定header=TRUE(指示第一行是列名)和row.names=1(指示第一列是行名)。將可選引數放在前面很方便,“亂序”,以便它們在大文本塊上方可見。
my_data <- read.table(header=TRUE,
row.names = 1,
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
")
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/327577.html
