【发布时间】:2023-01-16 00:52:38
【问题描述】:
考虑到以下数据库(称为数据),我想创建一个函数来检索给定“字母”的第一个“开始”位置。我希望我的函数将数据框和字母作为输入。
| Letter | Start | End |
|---|---|---|
| A | 1 | 2 |
| A | 3 | 3 |
| A | 2 | 4 |
| B | 4 | 5 |
| B | 6 | 1 |
| B | 2 | 6 |
| C | 4 | 8 |
| C | 9 | 3 |
| C | 7 | 3 |
我认为第一步应该是对我想要获得“开始”位置的特定“字母”进行子集化:
newdata <- subset(data, data == "A")
这导致了一个特定于字母 A 的数据框:
| Letter | Start | End |
|---|---|---|
| A | 1 | 2 |
| A | 3 | 3 |
| A | 2 | 4 |
第二步应该是为第一个起始位置索引子集数据帧:
newdata[1,2]
输出:1
它起作用了,因此我根据上述步骤创建了一个函数,其中 x 是命名数据框,y 是要为其选择的变量:
getFirstLetter <- function(x, y){ newdata <- subset(x, x == "y") return(newdata[1,2]) }
测试了功能但得到了NA:
getFirstLetter(data, A)
输出:NA
故障排除代码:
getFirstLetter(data, "A")
输出:NA
对于我的函数为何未返回预期输出的一些指导,我将不胜感激。 谢谢。
【问题讨论】:
-
你在
subset(x, x == "y")中引用了y
标签: r database dataframe function