我尝试创建一个名为newDataFrame
的新数据框,其中包含以下列:one
,two
和three
。您可以在下面看到数据类型。我现在想要的是将oldDataFrame
的数据与ifelse
语句一起传输到新的数据帧。所以我想要的是将旧数据框中的列复制到新dataFrame中的列one
。
# create new dataframe with the right types
newDataFrame <- data.frame(one= numeric(0), two= integer(0), three= character(0))
str(newDataFrame )
as.data.frame(newDataFrame )
# try to store the column x of the old frame to the new dataframe by conditions
newDataFrame$one<- ifelse(substr(oldDataframe_v7$x, start=1, stop=1)=="A", TRUE, FALSE)
我得到的是一个错误:
$<-.data.frame(*tmp*, "one", value = c(TRUE, TRUE, TRUE,))
Replacement has 261217 rows, data have 0
如何通过ifelse将数据从一个数据帧传输到另一个尚未填充的数据框?
答案 0 :(得分:0)
第一个数据框
data = data.frame(x=c(1,5,7,10),y=c(3,2,4,1.1),z=1:4)
data
# x y z
# 1 1 3.0 1
# 2 5 2.0 2
# 3 7 4.0 3
# 4 10 1.1 4
data1=data.frame(one=numeric(nrow(data)),two=integer(nrow(data)),three=character(nrow(data)))
data1
# one two three
# 1 0 0
# 2 0 0
# 3 0 0
# 4 0 0
data1$one<-data$x
data1
# one two three
# 1 1 0
# 2 5 0
# 3 7 0
# 4 10 0
上面的代码没有条件。希望这可能有所帮助。