r - 传递键值并从数据框中返回名称列表的函数,R?
问题描述
我对 R 的工作有点生疏,对 pandas 更熟悉,但我想不出它的语法会如何。有没有办法构建一个函数,将键值传递到数据框中,并返回与该键值关联的名称列表?
也有类似的...
#Example df Data
Name JobID
Ted 1
Bill 1
Frank 2
Ox 3
FindName <- function(x){
value = df.loc[(df['JobID'] == x), 'Name']
outList = value.iloc[0]
return outList
NameList <- FindName(df$JobID)
解决方案
这是一个示例,它使用内置数据集的 mtcars 来返回向量/列中的元素(对您而言,这将是),其中向量/列(x
对您而言,这将是Name
)中的元素与值匹配(对您而言,这将是)。y
JobID
v
1
findName <- function(x, y, v) {
x[y == v]
}
findName(rownames(mtcars), mtcars$cyl, 4)
现实情况是,您确实不需要将其作为函数执行,这是不必要的。在需要时直接编写会减少工作量df$Name[df$JobID == 1]
。使用您的数据,上述解决方案返回:
> findName(df1$Name, df1$JobID, 1)
[1] Ted Bill
Levels: Bill Frank Ox Ted
> df1$Name[df1$JobID == 1]
[1] Ted Bill
Levels: Bill Frank Ox Ted
它们的工作方式是执行线性搜索以返回一个逻辑向量(TRUE
/ FALSE
;看看执行时会发生什么df$JobID == 1
),然后将该逻辑向量传递给该向量的子集Name
到逻辑向量所在的向量TRUE
。
推荐阅读
- python - 有没有办法在 PRINT 语句的 FOR 循环 INSIDE 中编写?
- javascript - 如何仅在需要时才处理 ajax 请求,而不是每秒钟
- javascript - XMLHttpRequest.prototype.open 不会拦截 chrome-dev-tools 上显示的所有 HTTP 请求
- object - 适用于 python 3.7 的 Dlib whl
- c++ - 为什么 c++ 编译器在对两种不同类型的数值变量使用`std::max()`函数时会出错
- excel - VBA:使用过滤行和 SpecialCells(xlCellTypeVisible) 与将数据复制到新工作表中
- mysql - 获取论坛中所有主题的回复总数
- python - 绘制两个不同系列中几个点之间的距离
- visual-studio-code - VSCode:远程 - SSH 扩展 - 尝试连接到远程服务器时没有任何反应
- flutter - Flutter 中的标准底板