R将列传输到空数据新帧的另一列

时间:2016-03-09 12:44:08

标签: r dataframe transfer

我尝试创建一个名为newDataFrame的新数据框,其中包含以下列:onetwothree。您可以在下面看到数据类型。我现在想要的是将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将数据从一个数据帧传输到另一个尚未填充的数据框?

1 个答案:

答案 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 

上面的代码没有条件。希望这可能有所帮助。