用R中的零填充空行
我正在使用R来准备一个用R中的零填充空行,r,dataframe,R,Dataframe,我正在使用R来准备一个data.frame,它将在以后的混合效应回归中使用。我对R很陌生,我试着搜索并找到问题的解决方案,但我找不到我想要的 我的data.frame有20071行,我想添加一个新列,但它的长度为1767,我需要用零填充其余的行。 代码如下: data$M1 <- c(data$M1,(data$Mw[(data$Mw > 6.5)]-6.5)) data$M1 6.5]-6.5) 我得到一个错误: Error in `$<-.data.frame`(`*t
data.frame
,它将在以后的混合效应回归中使用。我对R很陌生,我试着搜索并找到问题的解决方案,但我找不到我想要的
我的data.frame
有20071行,我想添加一个新列,但它的长度为1767,我需要用零填充其余的行。
代码如下:
data$M1 <- c(data$M1,(data$Mw[(data$Mw > 6.5)]-6.5))
data$M1 6.5]-6.5)
我得到一个错误:
Error in `$<-.data.frame`(`*tmp*`, "M1", value = c(0.0999999999999996, :
replacement has 1767 rows, data has 20071
“$中的
错误这应该是您想要的:
data$M1[1768:20071] <- 0
data$M1[1768:20071]这应该满足您的要求:
data$M1[1768:20071] <- 0
data$M1[1768:20071]使用cbind.fill()
从rowr
库中,我们可以绑定不同大小的数据帧/向量,同时使用所需的fill
填充孔
> a=as.data.frame(matrix(0,4,2),stringsAsFactors = FALSE)
> a
V1 V2
1 0 0
2 0 0
3 0 0
4 0 0
> b=c(1,2,3)
> cbind.fill(a,b,fill=0)
V1 V2 object
1 0 0 1
2 0 0 2
3 0 0 3
4 0 0 0
使用rowr
库中的cbind.fill()
,我们可以绑定不同大小的数据帧/向量,同时使用所需的fill
填充孔
> a=as.data.frame(matrix(0,4,2),stringsAsFactors = FALSE)
> a
V1 V2
1 0 0
2 0 0
3 0 0
4 0 0
> b=c(1,2,3)
> cbind.fill(a,b,fill=0)
V1 V2 object
1 0 0 1
2 0 0 2
3 0 0 3
4 0 0 0
您所做的是提取符合您的条件的数据(1767行),因此向量比您在数据帧中的行数短
你应该用“ifelse”来代替
数据$M1 6.5,
数据$Mw-6.5,
0)
如果数字大于6.5,则从数字中减去6.5,否则返回零 您所做的是提取符合您的条件的数据(1767行),因此向量比您在数据帧中的行数短
你应该用“ifelse”来代替
数据$M1 6.5,
数据$Mw-6.5,
0)
如果数字大于6.5,则从数字中减去6.5,否则返回零 另一种基本的R方法是先创建填充有零的列,然后使用逻辑索引
data$M1 <- 0
data$M1[data$Mw > 6.5] <- data$Mw[data$Mw > 6.5] - 6.5
data$M1 6.5]6.5]-6.5
这可能更快。另一种基本的R方法是先创建填充有零的列,然后使用逻辑索引
data$M1 <- 0
data$M1[data$Mw > 6.5] <- data$Mw[data$Mw > 6.5] - 6.5
data$M1 6.5]6.5]-6.5
这可能更快。您可以这样做:
data$M1 <- pmax(data$Mw - 6.5, 0)
输出的第一个值对应于max(1,3)
第二个值对应于max(4,2)
这比使用ifelse()
要快得多。您可以执行以下操作:
data$M1 <- pmax(data$Mw - 6.5, 0)
输出的第一个值对应于max(1,3)
第二个值对应于max(4,2)
这比使用ifelse()要快得多
是否只在末尾附加这些零?您能否添加一个具有预期输出的可复制示例?是否只在末尾附加这些零?您能添加一个具有预期输出的可复制示例吗?这个答案有一个问题,OP应该事先知道值1768
。请学习如何格式化代码。我是为你做的,因为你是一个新用户,但这并不难。请参见答案框顶部的。要格式化代码,请参见此答案有问题,OP应事先知道值1768
。请学习如何格式化代码。我是为你做的,因为你是一个新用户,但这并不难。请参见答案框顶部的。要设置代码格式,请参见