我有两个包含农业收入数据的数据框。一种格式如下:
n
第二个空数据框,格式为:
dataframe_1 <- read.table(
text = "ID 2000 2001 2002 2003 2004
Barley 180 143 434 232 656
Wheat 764 667 667 554 121
Oats 121 443 343 346 121",
header = TRUE,
check.names = FALSE
)
第一个数据帧包含大量不必要的信息,我想获取有用的数据并将其汇总在第二个表中。
我想编写一个函数来检查匹配的列标题和行名,并从第一个表中获取相应的值,然后将其放在第二个表中。
示例:如果两个表中的列均被命名为“ 2002”,行被命名为“ Wheat”,则将第二个表中的NA值替换为值667。
我一直在尝试使用嵌套的for循环:
dataframe_2 <- read.table(
text = "ID 2000 2001 2002 2003 2004
Barley NA NA NA NA NA
Wheat NA NA NA NA NA
Oats NA NA NA NA NA",
header = TRUE,
check.names = FALSE
)
但是仅接收无法解决问题的无用错误消息,并且数据帧不变。一个例子是:
date_range <- c("2000", "2001", "2002", "2003", "2004")
for (y in rownames(dataframe_2)) {
for (x in date_range) {
dataframe_1[[x]][y] <- dataframe_2[[x]][y]
}
}
答案 0 :(得分:1)
我们可以通过一个简单的子集来实现此目的:
df1[df1$ID %in% df2$ID, names(df2)]
答案 1 :(得分:-1)
我建议将每种格式转换为长格式,然后将数据合并以从表1中提取与表2的类别/年份相匹配的数据。
[ DeptName: "AERONAUTICAL ENGINEERING",
Id: 1,
Name: "Jon",
Studentid: "190AE101",
Year: "III" ]