小编elJ*_*rge的帖子

选择包含行中特定值的列的名称

我正在使用data.frame:

        data.frame("A"=c(NA,5,NA,NA,NA),
                   "B"=c(1,2,3,4,NA),
                   "C"=c(NA,NA,NA,2,3),
                   "D"=c(NA,NA,NA,7,NA))
Run Code Online (Sandbox Code Playgroud)

这提供了以下形式的data.frame:

   A  B  C  D
1 NA  1 NA NA
2  5  2 NA NA
3 NA  3 NA NA
4 NA  4  2  7
5 NA NA  3 NA
Run Code Online (Sandbox Code Playgroud)

我的目的是检查data.frame的每一行,如果有一个值大于特定(让我们假设为2),并获得列的名称.

所需的输出(值大于2)应为:

for row 1 of the data.frame
x[1,]: c()

for row 2
x[2,]: c("A")

for row3
x[3,]: c("B")

for row4
x[4,]: c("B","D")

and for row5 of the data.frame
x[5,]: c("C")
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

r dataframe

5
推荐指数
1
解决办法
3433
查看次数

如何在创建自己的函数时处理NA

我想知道在R中创建自己的函数时如何处理NA值.

我的代码如下:

# The function is simple:

function.BHR <-function(x) prod(1+x)-1

# The structure of the data.frame:    
dat <- t(data.frame(
  "A"=c(20:29/100),
  "B"=c(35:44/100),
  "C"=c(20:29/100),
  "E"=c(50:57/100,NA,NA),
  "E"=c(45:51/100,NA,NA,NA))

apply(dat,2,function.BHR)
Run Code Online (Sandbox Code Playgroud)

简单的apply函数为最后三列提供了NA.取而代之的是
它应该应用所有非NA值的函数.因此:

  for column 8: 
  function.BHR(c(0.27,0.42,0.27,0.57))
[1] 2.595799

for column 9: 
  function.BHR(c(0.28,0.43,0.28))
[1] 1.342912

for column 10: 
  function.BHR(c(0.29,0.44,0.29))
[1] 1.396304
Run Code Online (Sandbox Code Playgroud)

提前致谢!

乔治·

r apply dataframe na

3
推荐指数
2
解决办法
108
查看次数

标签 统计

dataframe ×2

r ×2

apply ×1

na ×1