r - R 的两个数据格式问题

标签 r if-statement formatting

我有两个问题,我相信与 R 打交道都很简单。

我想创建一个 IF 语句,将 NA 值分配给列中的某些行。我尝试过以下命令:

a[a[,21]==0,5:10] <-NA

错误提示:

Error in [<-.data.frame(tmp, a[, 21] == 0, 5:20, value = NA) : missing values are not allowed in subscripted assignments of data frames

本质上,该代码应该采用第 21 列中的任何 0 值,并将该行的第 5 列到第 10 列的值替换为 NA。第 21 列中已经有 NA,但我不确定这是否有任何作用?

我根本不知道如何制作下一个函数。我需要操纵包含阳性和阴性对照的数据。但是,当我操作数据时,我不希望将阳性和阴性对照值排除在操作之外,但我希望阳性和阴性对照保留在列中,因为我稍后必须使用它们。无论如何,是否可以暂时忽略这些值,以便它们不包含在操作中?

这里是示例数据:

L = c(2,1,4,3,1,4,2,4,5,1) 
R = c(2,4,5,1,"Neg",2,"",1,2,1) 
T = c(2,1,4,2,"CTRL",2,"PCTRL",2,1,4) 
test <- data.frame(L=L,R=R,T=T)

如果可能的话,我希望能够根据字符“Neg”“CTRL”/“”“PCTRL”暂时忽略这些行,而不是它们在数据框中的位置。请注意,对于阴性对照,Neg 和 CTRL 位于不同的列、同一行中,就像阳性对照中的空白和 PCTRL 位于不同的列但相同的行中一样。考虑到这些奇怪的条件,有什么办法可以做到这一点吗?

希望这写得足够清楚,我提前感谢任何花时间帮助我的人!

最佳答案

尝试将数据框子集到 R 不是“Neg”的那些行:

subset(test, R!="Neg")

对于 NA 问题,您的数据框中可能已经有 NA,对吧?尝试一下是否有效:

a[a[,21] %in% 0, 5:10] <- NA

关于r - R 的两个数据格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6501989/

相关文章:

java - 打印出数组中的元素,元素之间使用逗号

r - R的编程范例是什么?

mysql - 如果表不存在,则跳过 R 中的 for 循环

python - 嵌套 if 子句 vs 级联返回 vs 断言

C# RSS 聚合,如何以编程方式格式化文本

objective-c - C编程格式调整

javascript - 可以离线运行 Javascript 中的 R 脚本吗?

r - 使用 R 创建关系矩阵

r - 在 R 中查找列表中的子列表

python - 尝试将邮政编码转换为二进制时找不到错误