如何解决删除不同列上的行 解决任务关于管道:
我想一次删除不同列上的不同观察结果。
让我们使用此数据集:
df1 = data.frame(Name = c('George','Andrea', 'Micheal','Maggie','Ravi','Xien','Jalpa'), Grade_score = c(4,6,45,9,5,7,“ present”), Mathematics1_score = c(45,78,44,89,66,49,72), Science_score = c(56,52,88,33,“ present”,47))
例如,我要删除 现在的45岁 ,数据框将像
df1 = data.frame(Name = c('Andrea','Maggie','Ravi'), Grade_score = c(6,5), 数学1_分数= c(78,66), Science_score = c(52,33))
如果有人对如何在R中设置数据集有任何见解并为我提供帮助:
- 立即删除这些观察结果
- 使用管道(%>%)删除这些观察结果
解决方法
解决任务
要删除这些行,您可以执行以下操作:
df1[rowSums((df1==45)|(df1=='present'))==0,]
使用 df1 == 45 和 df1 =='present',您可以确定要丢弃的单元格。您合并结果,每个包含 TRUE 的单元格都是您要舍弃的单元格。现在,您将所有带有 rowSums 的行总结为(TRUE = 1,FALSE = 0),该数组中的每个数字现在代表一行,而您希望保留这些行其中对应的整数为零。最后,您只访问要保留的行。
关于管道:
这只是调用函数的一种特定方法,有关更多信息,请参见here。与其在长语句中调用一个函数(可能很难阅读),不如先调用另一个函数。
例如而不是打电话
f(g(h(i(var,2)),7))
您可以使用管道:
var %>% i(2) %>% h() %>% g(7) %>% f()
%>%的左侧被视为右侧函数的第一个参数。
对于我提出的解决方案,如果不定义函数就不能将其重写为管道语句,因此会产生大量代码开销。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。