首页 > 解决方案 > 将 T/F 的向量添加到 R 中的向量列表中

问题描述

我有一个名为X,的 2 个向量的列表Y。我想为H这两个向量中的每一个添加一个新元素,该元素将显示为H = TRUE or FALSE.

但是,而不是显示TRUEFALSE我的输出显示1and 0。如何在当前输出中显示TRUE和?FALSE

H = c(T, F) # The element to be added

L <- list(X = c(K = 22, M = 39), Y = c(K = 54, M = 65)) # List to add to

Map(c, L, H = H) # My current solution

# Current OUTPUT:
# $X
#  K     M     H 
#  22   39     1   # instead of `TRUE`

# $Y
#  K     M     H 
# 54    65     0  # instead of `FALSE`

标签: rlistfunctionloopsvector

解决方案


你有这个问题是因为列表的每个元素都是一个向量,而一个向量是相同类型元素的集合。所以使用向量是不可能得到你想要的,布尔值总是会被​​转换为数字,因为这是已经存在的向量的类型。

但是您可以在列表中使用列表

L <- list(X = list(K = 22, M = 39), Y = list(K = 54, M = 65))
Map(c, L, H = H)

推荐阅读