我有这些作业说明。
在每行上打印每个名称,后跟“ |”,然后是年龄。创建一个列表,其中成员是两个向量。第一个向量保留名字。列表的成员应具有名称-“名字”和“年龄”。以以下格式输出此列表。
如果我没有记错的话,那么设置需要三件事。包含两个向量的列表。
first_names <- c("Jim", "Frank", "Sally")
ages <- c("25", "34", "42")
list_data <- list(first_names, ages)
# Desired Output
Jim | 25
Frank | 34
Sally | 42
我仅使用两个向量就可以完成此操作,但是当它们包含在列表中时则不能。我是否正确理解说明?
我的版本只有两个向量。
first_names <- c("Jim", "Frank", "Sally")
ages <- c("25", "34", "42")
if (length(first_names) == length(ages)) {
for (i in 1:length(first_names)) {
print(paste(first_names[i],ages[i],sep = " | "))
}
} else {
print("Error")
}
但是列表中的版本是我需要帮助的地方。
first_names <- c("Jim", "Frank", "Sally")
ages <- c("25", "34", "42")
list_data <- list(first_names, ages) # list
if (length(list_data[1]) == length(list_data[2])) {
for (i in 1:length(list_data[1])) {
print(paste(list_data[1][i],list_data[2][i],sep = " | "))
}
} else {
print("Error")
}
paste
被向量化,您不需要for
在这里循环。
cat(paste(first_names, ages, sep = " | ", collapse = '\n'))
#Jim | 25
#Frank | 34
#Sally | 42
如果要在某些报告中使用这些表,则可以使用更好的方法kable
或类似的程序包。
如果我们想使用list_data
我们可以做的:
cat(paste(list_data[[1]], list_data[[2]], sep = " | ", collapse = '\n'))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句