这是我对我的项目的一个问题。
假设我有这个数据集。
X1 X2 X3 X4
1 1 2 1 3
2 1 3 2 1
3 1 3 4 2
4 1 1 2 3
5 3 4 3 2
6 2 1 3 4
Run Code Online (Sandbox Code Playgroud)
从这个数据集中,我希望能够指定任何随机行并找出单元格等于 1 的列名。例如,如果我要指定第一行,那么我将得到X1和X3作为我的输出。同样,如果我要指定第二行,那么我将得到X1和X4作为我的输出。如果我要指定第三行,那么我会得到X1我的输出。
我希望这些例子有意义。我在 StackOverflow 上环顾四周,但找不到我要找的东西。如果您能帮我解决这个问题,我将不胜感激。
我们可以创建一个带有参数、数据和要传递的索引的函数,对数据进行子集化,创建一个逻辑向量并返回names数据集的
f1 <- function(dat, i) {
tmp <- dat[i, ]
names(tmp)[tmp == 1]
}
Run Code Online (Sandbox Code Playgroud)
-测试
> f1(df1, 1)
[1] "X1" "X3"
Run Code Online (Sandbox Code Playgroud)
df1 <- structure(list(X1 = c(1L, 1L, 1L, 1L, 3L, 2L), X2 = c(2L, 3L,
3L, 1L, 4L, 1L), X3 = c(1L, 2L, 4L, 2L, 3L, 3L), X4 = c(3L, 1L,
2L, 3L, 2L, 4L)), class = "data.frame", row.names = c("1", "2",
"3", "4", "5", "6"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |