R,sample()两个特定的列

时间:2015-10-14 19:07:46

标签: r

我有“d”表,想要随机输入10个条目。从这10个随机条目中我只想显示列a和b。如何修改以下代码?

sample(d, 10, replace=FALSE)

此外我想在表格中显示它,所以我想把它放到data.frame中 但data.frame(sample(d, 10, replace=FALSE))似乎也不起作用。

1 个答案:

答案 0 :(得分:0)

sample从矢量中选择。所以下面我使用row.names选择了10行。我将其与which结合使用,以便对选择sample中出现的行的数据进行子集化。

df <- data.frame(a = rnorm(100), b = rnorm(100), c = rnorm(100))
df
|          a|          b|          c|
|----------:|----------:|----------:|
| -0.2871389| -3.3284312|  1.1407268|
|  1.0332958| -0.3941396| -0.5673642|
|  0.3818575|  0.3572952| -1.0359738|
| -0.8893199|  0.3631301| -1.7498299|
|  0.6397421| -1.2466878| -0.6821477|
|  1.7704890|  0.2878294|  1.0452640|

sample_df <- df[which(row.names(df) %in% sample(row.names(df), 10, replace = FALSE)),c(1,2)]

sample_df
|   |          a|          b|
|:--|----------:|----------:|
|38 |  1.1299788| -0.5821954|
|42 | -0.7098492|  0.5000970|
|45 |  0.3411080| -0.3986854|
|46 |  0.1327252|  1.1115524|
|62 |  0.2457775| -0.5019835|
|74 | -0.1426126|  0.7491008|
|78 | -0.5061047| -0.3007340|
|92 | -0.4990604|  0.1078757|
|97 |  0.5888083| -1.8678351|
|99 |  0.9145843|  0.4139922|