R 我的因子在矫揉造作时变成整数:我不';我不要这个
有一个数据框(第1帧)和一列(事实),该列由因子组成。我创建了一个新的数据框(第2帧),如下所示:R 我的因子在矫揉造作时变成整数:我不';我不要这个,r,R,有一个数据框(第1帧)和一列(事实),该列由因子组成。我创建了一个新的数据框(第2帧),如下所示: Matching_list <- setNames(data.frame(matrix(ncol = 3, nrow = nrow(HH))), c("ProIDS", "Pol_Centre", "Dist")) Matching_list这里有一个完全试探性的解决方案(因为您没有提供任何可复制的数据) 假设您拥有此类数据: df1 <- data.frame(fact = LET
Matching_list <- setNames(data.frame(matrix(ncol = 3, nrow = nrow(HH))), c("ProIDS", "Pol_Centre", "Dist"))
Matching_list这里有一个完全试探性的解决方案(因为您没有提供任何可复制的数据)
假设您拥有此类数据:
df1 <- data.frame(fact = LETTERS[1:10])
现在进一步假设,如您所说,您有另一个数据帧,如下所示:
set.seed(100)
df2 <- data.frame(varX = rnorm(10))
但请注意,如果现在检查df2
的结构,R已将df2$fact
转换为字符变量:
str(df2)
'data.frame': 10 obs. of 2 variables:
$ varX: num -0.5022 0.1315 -0.0789 0.8868 0.117 ...
$ fact: chr "A" NA "A" NA ...
欢迎来到StackOverflow!请阅读相关信息以及如何给出建议。这将使其他人更容易帮助您。A)系数在内部存储为整数。从这个意义上讲,你不会丢失任何信息。B) 矩阵
只能保存一种类型的数据。如果需要混合列,还应使用list
s(或data.frame
,它们在内部作为列表列表处理):如果添加了。你可以让别人更容易找到并测试你问题的答案。这样你可以帮助别人来帮助你!谢谢你们!我想在下面分享我的代码样本(c中的I(1:nrow(Gps_家庭)){Matching_list[I,1]=Gps_家庭[which(矩阵_of_distance==min(矩阵_of_distance[I,]),arr.ind=T[1],1]Matching_list[I,2]=Gps_poll_cent_west_urban[which(矩阵_of_of_distance==min(矩阵_of_distance[I,]),arr.ind=T)[],1]匹配_list[I,3]=min](距离矩阵[i,])列[i]=Gps\u poll\u cent\u west\u urban[其中(距离矩阵=min(距离矩阵[i,]),arr.ind=T)[2],1]]
df2$fact <- ifelse(df2$varX < 0, levels(df1$fact)[1], NA) # if varX < 0 "A" else NA
df2
varX fact
1 -0.50219235 A
2 0.13153117 <NA>
3 -0.07891709 A
4 0.88678481 <NA>
5 0.11697127 <NA>
6 0.31863009 <NA>
7 -0.58179068 A
8 0.71453271 <NA>
9 -0.82525943 A
10 -0.35986213 A
str(df2)
'data.frame': 10 obs. of 2 variables:
$ varX: num -0.5022 0.1315 -0.0789 0.8868 0.117 ...
$ fact: chr "A" NA "A" NA ...