【发布时间】:2021-07-28 06:51:06
【问题描述】:
我是 R 的初学者,我主要是尝试自学。我找到了一些练习,并给了它一个数据框,并要求找到 3 个成绩小于 8 的学生。
df <- data.frame(Name = c('Ana', 'John', 'Joanna', 'Anna', 'Martin', 'Katrin'),
Age = c(24, 26, 26, 31, 32, 45),
Height = c(1.7, 1.82, 1.75, 31, 32, 45),
Gender = c('M', 'M','F', 'F', 'M','F'),
stringsAsFactors = FALSE)
marks <- matrix(c(10, 9, 10, 6, 7, 8,
10, 9, 10, 8, 7, 8,
8, 10, 9, 7, 7, 7,
6, 8, 6, 8, 8, 9,
6, 8, 6, 10, 9, 10,
7, 6, 8, 10, 10, 8), nrow = nrow(df), ncol = 6)
rownames(marks) <- df$Name
colnames(marks) <- c('Math', 'Physics', 'Arts', 'Chemistry','Biology', 'History')
我做了一个非常简单的解决方案,一个一个地检查,它可以得到正确的答案,但如果我有一个巨大的数据集,绝对不会工作。有人可以帮我找出解决问题的“正确”方法吗?
我的解决方案:
for (i in marks[1,])
print (i < 8)
for (i in marks[2,])
print (i < 8)
for (i in marks[3,])
print (i < 8)
for (i in marks[4,])
print (i < 8)
for (i in marks[5,])
print (i < 8)
for (i in marks[6,])
print (i < 8)
我认为应该有一种使用 for 或 apply 函数的方法,但我无法让它工作。我将不胜感激,非常感谢您!
【问题讨论】: