2017-10-16 49 views
-1

我是R studio的新手,在第2年为数学模块学习它。 我已经设置了一个问题“运行命令以显示参赛者是男性的所有行” 。我试过使用子集函数和$,但我似乎无法弄清楚。在数据框中选择行

Age = c(25, 23, 33, 28, 35, 31, 25, 29) 
Gender = c(Male, Male, Female, Female, Male, Female, Female, Female) 
Cinema = c(T, T, T, T, F, F, T, F) 
Shopping = c(F, F, F, T, T, T, F, F) 
df = data.frame(Age, Gender, Cinema, Shopping) #data frame of dating show data 

这是日期帧,任何人都可以指向正确的方向吗?

+4

不太确定我关注......类似这样的'df [df $ Gender =='Male',]'? – Sotos

+0

你尝试过'dplyr'吗?像'df%>%filter(Gender =='Male')'应该这样做。 – Aramis7d

+0

你也可以使用df%>%filter(Gender =='Male') – Alex

回答

0

首先,你需要把性别问题纳入引号,因此被认为是一个字符串,而不是变量:

Age = c(25, 23, 33, 28, 35, 31, 25, 29) 
Gender = c("Male", "Male", "Female", "Female", "Male", "Female", "Female", "Female") 
Cinema = c(T, T, T, T, F, F, T, F) 
Shopping = c(F, F, F, T, T, T, F, F) 
df = data.frame(Age, Gender, Cinema, Shopping) #data frame of dating show data 

查看所有行,性别=男,你可以使用下面的命令

> df[df$Gender == 'Male',] 

    Age Gender Cinema Shopping 
1 25 Male TRUE FALSE 
2 23 Male TRUE FALSE 
5 35 Male FALSE  TRUE 
+0

谢谢,你能解释为什么我需要使用性别列的引号吗? –

+0

@ F.Wotton你真的需要阅读一本书并开始使用R.这里有几本书,[书1](http://www.burns-stat.com/pages/Tutor/R_inferno.pdf) ,和[书2](http://franknarf1.github.io/r-tutorial/_book/index.html#introduction) – Sotos

+0

使用'c(男,女,...)'结合变量'男'和“女性”。你想要结合“男性”和“女性”等字符串,所以你需要声明它们。 如果男性和女性是某种变量,那么你的代码就可以工作,但这不是你想要的。例如: '男< - 2'和 '女< - 3'使用 '> C(男,女,女,女,男,女,女,女)'将导致 '[1] 2 2 3 3 2 3 3 3' - 关于R中字符串的信息:https://www.tutorialspoint.com/r/r_strings.htm - 通用教程:http://www.statmethods。净/ R-教程/ index.html中 – brettljausn