select 一系列列和添加到向量的快捷方式
Shortcut way to select a range of columns and to addition to a vector
我在做一个简单的加法:
a <- data$a + data$b + data$c + data$d
但是,我有一个数据集,其中导入的数据中有 50 列,想知道是否有 select 这些的捷径,例如:
data$a:data$z
然后把它们加起来?
我知道我可以 select 一个简单的范围:
dataframe[11:60]
但是怎么添加呢?
编辑:
一个更具体的例子
affect <- well_being_df$Affect1 + ... well_being_df$Affect50
affect
<labelled doubled>
[1] 21 23 43 8 10 ...
[38] 42 42 54 ...
[75] 23 14 42 23 ... etc
labels:
value label
0 Not at all
10 Completely
您可以在不使用“$”的情况下访问您的列,但仍然可以使用它们的标签:
rowSums(data[,c("a","b","c")]
如果你的列太多而你无法输入 "a b c d ... z",你可以使用它们的 ascii 代码循环使用 :
vec <- rep(0,10)
for (i in 1:10)
{
vec[i]<- intToUtf8(64+i)
}
它为您提供 "A", "B", ... ,"J" ;现在你可以使用 rowSums(data[,vec])
关于你评论中的最后一个问题,当你在 data[] 中使用“,”时,它定义了它之前的行索引和它之后的列索引,同样在 data[] 中你可以使用逻辑值,因为它以上代码 运行 正确。
我在做一个简单的加法:
a <- data$a + data$b + data$c + data$d
但是,我有一个数据集,其中导入的数据中有 50 列,想知道是否有 select 这些的捷径,例如:
data$a:data$z
然后把它们加起来?
我知道我可以 select 一个简单的范围:
dataframe[11:60]
但是怎么添加呢?
编辑: 一个更具体的例子
affect <- well_being_df$Affect1 + ... well_being_df$Affect50
affect
<labelled doubled>
[1] 21 23 43 8 10 ...
[38] 42 42 54 ...
[75] 23 14 42 23 ... etc
labels:
value label
0 Not at all
10 Completely
您可以在不使用“$”的情况下访问您的列,但仍然可以使用它们的标签:
rowSums(data[,c("a","b","c")]
如果你的列太多而你无法输入 "a b c d ... z",你可以使用它们的 ascii 代码循环使用 :
vec <- rep(0,10)
for (i in 1:10)
{
vec[i]<- intToUtf8(64+i)
}
它为您提供 "A", "B", ... ,"J" ;现在你可以使用 rowSums(data[,vec])
关于你评论中的最后一个问题,当你在 data[] 中使用“,”时,它定义了它之前的行索引和它之后的列索引,同样在 data[] 中你可以使用逻辑值,因为它以上代码 运行 正确。