使用来自R中另一个.csv文件的信息从.csv文件中删除列

时间:2016-01-12 18:08:42

标签: r csv

我有两个csv文件。文件一(consumption.scv)在标题中具有家庭标识符编号,在每行中具有每小时消耗值。每列代表另一个hosuehold。文件二是一列,只有我想要包含的家庭号码 我想生成一个文件,其中只包含文件b中包含的消费时间系列的住户。

消费< -read.csv householdno< -read.csv

我遇到以下情况: consumption_new< -consumption [,C(XXXXXX)]

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

由于您还没有reproducible example,我必须创建一个:

set.seed(123)
consumption <- matrix(floor(runif(26*3, 10, 30)), nrow=3)
colnames(consumption) <- LETTERS
householdno <- data.frame(houses=sample(LETTERS, 5))
consumption[, colnames(consumption) %in% householdno[,1]]
#       C  F  J  P  Z
# [1,] 20 27 21 12 14
# [2,] 27 14 15 14 17
# [3,] 21 10 12 19 22

诀窍是使用logical vector to subset columns from data.frame。 TRUE包括列,FALSE排除它。

%in%将检查第二个向量中的每个元素是否都存在于第二个向量中。它返回第一个向量长度的逻辑向量。

完成触摸是使用该逻辑向量来对data.frame中的所需列进行子集化。如果您决定将该向量存储在变量中,这将更具可读性。