按指定列和指定值过滤数据框

时间:2019-07-24 23:44:26

标签: r dataframe

enter image description here

我根本不知道如何在R中编程,我只知道python pandas。如何在R中执行以下操作:

  • 我的代码有两个变量,用户名和赋值
  • 我想过滤我的数据框,以便只获得包含name == username ...
  • 的行。
  • 然后我只想要名称与变量asignment匹配的列。

图为我是如何在Python熊猫中做到这一点的,目的只是为了弄清楚我想要什么。如何在R中执行此操作?

2 个答案:

答案 0 :(得分:3)

如果只需要该值,则可以使用:

df$asgn1[df$name == username]

或者,使用dplyr获取列,您可以使用filterselect

library(dplyr)
df %>%
  filter(name == username) %>%
  select(asgn1)

答案 1 :(得分:0)

你可以做

df[df$name == username, assignment]
#[1] 80

或者您也可以基于列位置进行子集

df[df[, 1] == username, assignment]

dplyr中,您还可以使用pull获取列名作为矢量

library(dplyr)
df %>%
  filter(name == username) %>%
  pull(assignment)

数据

df <- data.frame(name = c("Jenna", "Alex", "Nick"), asgn1 = c(80, 90, 92), 
                 asgn2 = c(82, 92, 94), stringsAsFactors = FALSE)
username = "Jenna"
assignment = "asgn1"