【发布时间】:2018-03-21 07:52:36
【问题描述】:
您好,我有以下示例,
df
#First Name Second Name Subject Score
#Harry Kane Biology 0
#Harry Kane Physics 25
#Harry Kane Math 19
#Harry Kane Social 16
#Harry Kane History 19
#Tom Hault Biology 0
#Tom Hault Physics 22
#Tom Hault Math 24
#Tom Hault Social 25
#Tom Hault History 20
#Ben Capario Biology 0
#Ben Capario Physics 12
#Ben Capario Math 15
#Ben Capario Social 16
#Ben Capario History 18
#Phil Adams Biology 20
#Phil Adams Physics 22
#Phil Adams Math 17
#Phil Adams Social 15
#Phil Adams History 18
#Shawn Salzensky Biology 25
#Shawn Salzensky Physics 22
#Shawn Salzensky Math 18
#Shawn Salzensky Social 19
#Shawn Salzensky History 12
每个人都有自己的姓名和在各个科目中的分数。
我正在尝试以这种格式输出,
df1
#First Name Second Name Subject Score
#Harry Kane Biology 0
#Harry Kane Physics 25
#Tom Hault Biology 0
#Tom Hault Physics 22
#Ben Capario Biology 0
#Ben Capario Physics 12
我试过这个:
df1 <- filter(df, {Subject=='Biology'&`Score`== 0} | {Subject=='Physics'&`Score`!= 0})
但是,它需要 'subject' 和 'score' 分别返回包含生物学及其各自分数的元素,以及 == 0 的分数。
还有其他方法吗?
【问题讨论】:
-
您能提供有用的样本数据吗?
-
filter保留某些行。您可以尝试在此处从长转换为宽,这样每人一排。 -
将它们保存为
data.frame,然后使用table。您能否以data.frame格式上传您的数据,这样很容易复制您的示例? -
我重读了您的问题并意识到我不知道您在寻找什么。如果你想要一些看起来像“我正在尝试以这种格式输出”下的代码块的东西,它在下面。不过,完全不清楚您的“我已经尝试过这个”代码块得到了什么。
-
嗨,丹,感谢您的代码。它奏效了,给了我想要的输出。