2015-11-05 126 views
0

我有一個很大的數據框,所以我想創建一個小的數據框子集來測試我的功能。選擇一個數據框的子集

a=seq(from=1, to =1000, by=10) 
b=seq(from=1,to=20000, by=100) 
small_df <- df [a,b] 

而samll_df最終是一個包含b中的數字的向量。

什麼是正確的做法?

期望輸出:

 col1 col11 col21 ........col91 
    row1 
    row11 
    row21 
    row31 
    ... 
    row19901 
+1

你到目前爲止嘗試了什麼? – 2015-11-05 02:21:06

+0

如果您可以將數據發佈爲csv,則可能也會有所幫助,具體取決於數據的大小。語法似乎沒問題,它可能只是尺寸問題。 – zacdav

+0

在你的代碼中,你用'by = 100'創建'b',並且在期望的輸出中,你想要每10列。如果原始數據集是'data.frame',它應該可以工作。例如'set.seed(24); (矩陣(樣本(1:9,100 * 100,替換= TRUE),ncol = 100)); a-seq(1,100,by = 10); b < - seq(1,100,by = 10); DF [A,B]' – akrun

回答

2

的方法你正在使用作品罰款的數據幀。這是一個例子。

df <- data.frame(a = 1:10, b = 11:20, c = 21:30, d = 51:60) 

#  a b c d 
#1 1 11 21 51 
#2 2 12 22 52 
#3 3 13 23 53 
#4 4 14 24 54 
#5 5 15 25 55 
#6 6 16 26 56 
#7 7 17 27 57 
#8 8 18 28 58 
#9 9 19 29 59 
#10 10 20 30 60 

# Extracting rows and columns 
df[c(1,3,5,7,9),c(1,3)] 

#  a c 
#1  1 21 
#3  3 23 
#5  5 25 
#7  7 27 
#9  9 29 

此方法不適用於數據表。對於數據表,子集的規則是不同的。