在 apply 内使用 ifelse

2023-11-25

我试图在数据集中创建一个新列,根据预先存在的列的输入,为每一行提供一个输出。

在此输出列中,我希望“NA”if给定行中的任何输入值都是“0”。否则(如果没有一个输入为 0),我希望该行的输出是输入的唯一值的数量。

我认为解决方案将使用ifelse嵌套在一个函数中apply函数,但我收到一个我不明白的错误。

data$output <- apply(data, 1, function(x) {ifelse(x == 0, NA, length(unique(x)))})

错误于$<-.data.frame(*tmp*,“输出”,值 = c(3L, 3L, 3L, 3L, : 替换有 3 行,数据有 4 行

我不知道为什么替换有 3 行,因为我认为 apply 只是对我的 4 行中的每一行执行相同的功能。


您想要检查一行中是否有任何变量为 0,因此您需要使用any(x==0)代替x == 0 in the ifelse陈述:

apply(data, 1, function(x) {ifelse(any(x == 0), NA, length(unique(x)))})
# [1]  1 NA  2

基本上ifelse如果第一个参数的长度为 n,则返回长度为 n 的向量。您想要每行一个值,但要传递多个值x==0(您传递的值的数量等于数据框中的列数)。

Data:

(data <- data.frame(a=c(1, 2, 3), b=c(1, 0, 1)))
#   a b
# 1 1 1
# 2 2 0
# 3 3 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 apply 内使用 ifelse 的相关文章

随机推荐

  • 如何配置 Geany 来编译和运行我的 Python 程序?

    在 构建 菜单下 我可以看到 执行 选项 但它是灰色的 唯一可用的选项是 设置包含和参数 当我单击时 两个字段都已填写 我必须在那里写什么 I don t need to configure anything in Geany I just
  • 寻找一种使用 NSArray 作为一堆按钮的插座的方法

    我的用户界面有四个按钮 它们都会共享一些共同的行为 例如跟踪区域创建之类的事情 我正在寻找的是一个解决方案 所以我不必这样做 interface MyController NSWindowController NSButton button
  • 带有选项卡和 Viewpager 的 Android Fragments

    我们正在构建一个如上所示的具有片段嵌套的应用程序 选项卡特色 详细信息选项卡和地图选项卡 详细信息选项卡将有一个幻灯片 就像 查看页面滑块 和下面可滚动的信息 地图选项卡将显示地图 我已经实现了选项卡 地图以及滑块 如上所示 现在我很困惑如
  • 通过 AcceptEx() 连接的套接字的 TCP 关闭

    的文档AcceptEx says 当此操作成功完成后 sAcceptSocket 可以 已通过 但仅限以下功能 ReadFile 写文件 send WSASend recv WSARecv 传输文件 封闭式插座 setsockopt 仅适用
  • 为什么 Tensorflow-gpu 仍然使用 cpu

    我在后端使用带有tensorflow gpu的Keras 我没有安装tensorflow CPU版本 所有输出都显示选择了GPU 但tf正在使用CPU和系统内存 当我运行代码时 输 出是 输出代码 我什至运行了 device lib lis
  • 使用 matlabpool 时出错 - 未定义函数“distcomp.fileserializer”

    我正在尝试使用 MATLAB 中的并行计算工具箱来帮助加速我正在执行的一些密集计算 在我可以使用像这样的结构之前parfor 我需要通过创建一个工人池matlabpool 首先 我只想使用默认的 local只需调用即可配置文件matlabp
  • 应用程序沙盒/iCloud 和 Snow Leopard 向后兼容性

    到目前为止 所有 Mac App Store 开发人员都知道 所有应用程序都必须启用新的 OSX Lion Sandboxing 对于现有应用程序 我们必须在 XCode 4 2 中启用它并设置数据迁移 plist 因此 我现有的 Mac
  • Java 中“new”关键字的实际作用是什么?我应该避免创建新对象吗?

    我不久前注册了 尽管自从我开始自学计算机编程以来 我一直在充分利用这个网站 我一直在自学计算机编程 并认为这是我的一个小爱好 我确实查找过类似的问题 但事实上我找不到我正在寻找的答案 现在 请注意 在 Java 这是我建议开始使用的语言 中
  • 使用 package.json 全局和本地安装依赖项

    使用 npm 我们可以使用以下命令全局安装模块 g选项 我们如何在 package json 文件中执行此操作 假设 这些是我在 package json 文件中的依赖项 dependencies mongoose 1 4 0 node i
  • 日期字段在验证时给出所需的错误

    我在我的 asp net MVC 3 网站中创建了一个模型 并有一个名为 DateOpened 的属性 Column Date Opened Display Name Date Opened DataType DataType Date D
  • Android Fragment 导航和 Backstack

    我有一个标题栏 有点像菜单 和 4 个片段 MAIN A B C 其中 MAIN 应该是用于 backstack 的 main root 片段 我遇到的问题是当用户通过菜单进入例如 MAIN gt A gt B gt C 时 如果我只是使用
  • Android Studio 无法找到有效的 Jvm(与 MAC OS 相关)

    我无法在 Mac OS 10 10 1 Yosemite 上启动 Android Studio 进行 Android 开发 打开应用程序包安卓工作室在 Finder 中 然后编辑信息表文件 更改关键 JVM 版本 将 1 6 改为 1 6
  • CMake:如何为头文件设置COMPILE_FLAGS?

    我已经成功使用CMake构建了共享库 但大小不太好 我已经尝试过几个编译标志来减少大小等 set source files properties TARGET SOURCE FILES PROPERTIES COMPILE FLAGS fe
  • 当 import_array 不在同一翻译单元中时出现段错误

    我在正确初始化 NumPy C API 时遇到问题 我想我已经将问题与调用隔离了import array来自不同的翻译单位 但我不知道为什么这很重要 最小工作示例 header1 hpp ifndef HEADER1 HPP define
  • 将 WAR 文件部署到 Jboss EAP 6.0(在 JBOSS AS 7.1 下工作)时出错

    我们正在开发使用 Jboss Spring 和 Hibernate 构建的新系统 目前我们正在从 AS 7 1 迁移到 EAP 6 0 由于我们未知的原因 部署到 EAP 6 0 服务器时部署失败 但在 AS 7 1 下工作得很好 在我们的
  • 我可以使用 Google Visualization API 在应用脚本中查询电子表格吗?

    我有一个包含大约 3000 行数据 大约 30 列 的 Google 电子表格 数据以标准方式布局 包含列标题和每个数据项一行 这些数据代表各种学术课程中使用的案例研究和文章 并且数据集始终在增长 我需要根据指定的参数搜索 查询数据 例如
  • Meteor template.find 未定义

    我正在尝试使用template find让我的生活更轻松 但在 javascript 控制台中我得到 undefined is not a function 这就是我所拥有的 它被绊倒了template find Template supe
  • 我们可以在 perl 脚本中获取 shell 脚本吗

    我们可以在 perl 脚本中获取 shell 脚本吗 例子 方案一 cat test1 sh bin ksh DATE bin date 方案2 cat test2 sh bin ksh test1 sh echo DATE 方案3 cat
  • 为什么 printf 对浮点数进行四舍五入?

    我正在尝试使用打印一些浮点数printf 例如 int main printf 1f 76 75 return 0 Output 76 8 我对结果有一些疑问 首先 为什么没有打印出来76 7 其次 这个数字是如何四舍五入的 C99 7 1
  • 在 apply 内使用 ifelse

    我试图在数据集中创建一个新列 根据预先存在的列的输入 为每一行提供一个输出 在此输出列中 我希望 NA if给定行中的任何输入值都是 0 否则 如果没有一个输入为 0 我希望该行的输出是输入的唯一值的数量 我认为解决方案将使用ifelse嵌