首页 > 解决方案 > 搜索数据框并从数据框中返回不同的值

问题描述

我有一个巨大的数据框。第一列是名称。我想在控制台中输入名称,然后输出与该名称对应的预定行。

例如:

Data Frame =    
Name Height Weight Shoes Hats
1 Joe  60     150    13    4
2 Nick 55     100    10    10
3 Dan  80     250    40    50

我想搜索Nick,该函数在第一列中搜索 Nick。一旦找到 Nick,它就会打印出 Shoes 值。所以它需要在第一列中搜索,然后返回对应的鞋子值是什么。

标签: rdataframesearch

解决方案


我们可以通过参数为数据、列名和要比较的值创建函数,然后提取带有 的列[[,进行比较==并提取对应的第二列值

f1 <- function(dat, col1, col2, value) {
            dat[[col2]][dat[[col1]] == value]
     }

f1(df1, "Name", "Shoes", "Nick")
#[1] 10

数据

df1 <- structure(list(Name = c("Joe", "Nick", "Dan"), Height = c(60L, 
55L, 80L), Weight = c(150L, 100L, 250L), Shoes = c(13L, 10L, 
40L), Hats = c(4L, 10L, 50L)), class = "data.frame", row.names = c("1", 
"2", "3"))

推荐阅读