合并R中的两个数据集后,得到的数据框缺少一列中的所有值,是什么原因导致的?

laawzig2  于 2023-02-27  发布在  其他
关注(0)|答案(1)|浏览(150)

我正在使用两个Excel工作表。这是我的代码:

# Read the first dataset
df1 <- read.csv("ATLweather.csv")

# Read the second dataset
df2 <- read.csv("electricityprices.csv")

 # Merge the datasets
 library("dplyr")
 merged_df <- left_join(df1, df2, by = "Timestamp")
  head(merged_df)

 library(writexl)

 # Save the merged data frame as an Excel file
  write_xlsx(merged_df, path = "C:/Users/Nathaniel/Documents/newfile.xlsx")

这成功地合并了数据集,但是将“cost”列中的所有数据替换为“NA”(如下图所示,在我的环境中)。

这是我第一次做任何编码,所以我不知道如何解决这个问题。我做错了什么?

dced5bon

dced5bon1#

正如@Claudio所指出的,Timestamp向量是格式不同的字符向量(你可以通过截图中的“chr”来判断它们是字符). R不知道字符应该被解释为日期.你可以将它们都改为日期对象,并以这种方式合并它们,但一种简单的方法是将一种格式转换为另一种格式,并将它们保留为字符(有时在R中玩日期是比它的价值更多的工作,但是如果你想把它们作为日期来玩,请参见包lubridate)。
下面是一个快速解决方案:

Timestamp<-c("1/1/2010 0:00","1/1/2010 1:00")  ## create example data

Timestamp<-as.POSIXct(Timestamp,format="%m/%d/%Y %H:%M") ## can enter timezone here if you want
Timestamp<-as.character(Timestamp)

Timestamp  # look at output
"2010-01-01 00:00:00" "2010-01-01 01:00:00"

然后只需将此处的Timestamp更改为df2$Timestamp即可。

相关问题