买什么
本课属于 Coddy R 学习旅程的“基础知识”单元。第 78 课,共 78 课。
挑战
简单创建一个名为 what_to_buy 的函数,它接受两个参数:budget(数值)和 prices(包含商品价格的命名向量)。函数应返回一个字符向量,其中包含所有价格小于或等于预算的商品名称。
如果没有买得起的商品,请使用 character(0) 返回一个空字符向量。
你将收到以下输入:
- 预算金额(一个数字)
- 以逗号分隔的商品名称列表(例如,
apple,banana,steak,bread) - 以逗号分隔的对应价格列表(例如,
2,1,15,3)
解析输入以创建价格命名向量,调用你的函数,并打印结果。使用 print() 显示返回的字符向量。
例如,如果输入是:
5
apple,banana,steak,bread
2,1,15,3输出应为:
[1] "apple" "banana" "bread"如果输入是:
10
laptop,phone,tablet
999,599,399输出应为:
character(0)提示:
- 使用
strsplit(input, ",")[[1]]将逗号分隔的字符串拆分为向量 - 使用
as.numeric()将价格字符串转换为数字 - 使用
names(prices) <- item_names创建命名向量 - 使用
names()进行逻辑索引,提取买得起的商品名称
亲手试试
# 读取输入
con <- file("stdin", "r")
budget <- as.numeric(suppressWarnings(readLines(con, n = 1)))
item_names_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# 解析输入
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])
# 创建以商品名称为名称的价格向量
prices <- price_values
names(prices) <- item_names
# TODO:在下方编写函数 what_to_buy
# 该函数应接收 budget 和 prices 作为参数
# 并返回一个包含买得起的商品名称的字符向量
# 调用函数并打印结果
result <- what_to_buy(budget, prices)
print(result)基础知识中的所有课
自己练习: R 在线编译器