[英]R error: Error in `row.names<-.data.frame`(`*tmp*`, value = value)
[英]Error in `$<-.data.frame`(`*tmp*`, cycle for R
早上好,
我的周期有问题。
我的数据框是:
Name_FD
Column_A Column_B Column_C Column_D Column_X
Element1 8808864430 88440000011863 Text1 *NA*
Element2 8808877431 88455000045863 Text2 *NA*
Element3 8808886677 88447800011865 Text3 *NA*
Element4 8808888830 88455000045867 Text4 *NA*
Element5 8808888830 88440000011869 Text5 *NA*
Element6 8808888830 88455000045810 Text6 *NA*
Element7 8808889977 88447800011865 Text3 *NA*
Element7 8808889977 88447800011865 Text3 *NA*
我的代码是:
Name_FD$Column_X <- rep(NA, length(Name_FD$Column_B))
for (i in Name_FD$Column_B){
for ( j in Name_FD$Column_B[-1,]) {
if(i == j) {
Fonte_Dati$x[i]= 1
} else {
Fonte_Dati$x[i]= 0
}
}
}
错误是:
Error in Name_FD$Column_B[-1, ] : incorrect number of dimensions
Error in `$<-.data.frame`(`*tmp*`, "Column_X", value = c(NA, NA, NA, NA, NA, :
replacement has 16669 rows, data has 16668
Column_B 从最小到最大排序。
例如,我想知道 Colum_B [3,] 的元素是否与 Column_B[4,] 的元素相等。
如果这是真的,我想在 Column_X (在 Column_B[4,] 的元素的同一行)中插入 1,否则为 0。
有人会很友善地告诉我我哪里错了。
提前致谢。
弗朗切斯科
Name_FD <- read.table( text = "Column_A Column_B Column_C Column_D
Element1 8808864430 88440000011863 Text1
Element2 8808877431 88455000045863 Text2
Element3 8808886677 88447800011865 Text3
Element4 8808888830 88455000045867 Text4
Element5 8808888830 88440000011869 Text5
Element6 8808888830 88455000045810 Text6
Element7 8808889977 88447800011865 Text3
Element7 8808889977 88447800011865 Text3", header = TRUE)
library(tidyverse)
Name_FD %>% mutate( Column_X = ifelse( Column_B == lead( Column_B ), 1, 0 ) )
# Column_A Column_B Column_C Column_D Column_X
# 1 Element1 8808864430 8.84400e+13 Text1 0
# 2 Element2 8808877431 8.84550e+13 Text2 0
# 3 Element3 8808886677 8.84478e+13 Text3 0
# 4 Element4 8808888830 8.84550e+13 Text4 1
# 5 Element5 8808888830 8.84400e+13 Text5 1
# 6 Element6 8808888830 8.84550e+13 Text6 0
# 7 Element7 8808889977 8.84478e+13 Text3 1
# 8 Element7 8808889977 8.84478e+13 Text3 NA
我认为有一种更简单的方法可以做到这一点:)
library(dplyr)
Name_FD %>%
mutate(Column_X = ifelse(Column_B == lead(Column_B), 1, 0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.