我正在尝试从我从excel导入的数据框中插值。在表中有两列(值1和值2),我试图为每个唯一的“名称”插值。数据框包含550行,其中包含90个唯一名称(因此每个名称具有多个“Value1”值和多个“Value2”值)。数据框中还有一堆不相关的列,我没有用。
数据框示例:
Name Value1 Value2 NotImportantvalue1 NotImportantvalue2
A 1 1 ABC ABC
A 2 1 ABC ABC
B 40 40 ABC ABC
C 30 30 ABC ABC
C 1 2 ABC ABC
D 2 400 ABC ABC
D 3 500 ABC ABC
D 40 2 ABC ABC
我一直在讨论循环遍历数据框的for循环,该数据框包含Names的唯一值,试图让它通过my.data中的Value1 / Value2列,其中“Name”列中的名称与名称相匹配在独特的数据框架中,但我没有得到我想要的结果。
我目前使用的代码是,当数据框“Name”中的i与my.data中“Name”列中的值匹配并保存为具有相同名称的数据帧时,尝试获取Value1和Value2 。之后,我必须弄清楚如何在每个数据帧中插值。
#Set working directory
setwd("H:\\R-project")
#Set file path
file <- file.path("Data.xlsx")
#set library
library(XLConnect)
#Read data
my.data <- readWorksheetFromFile(file,sheet=1,startRow=1)
#Unique Names
Name <- data.frame(unique(my.data$Names))
colnames(Name) <- "Name"
for (i in Name$Name) {
assign(i, data.frame(my.data$Value1[my.data$Name==Name[[i],]], my.data$Value2[my.data$Name==Name[[i],]])
}
我也不确定是否要使用90个单独的data.frames,或者我应该使用类似的东西
name_list <- split(my.data, as.factor(my.data$name))
直接从列表中插入(虽然我不知道具体怎么做,但循环不是我的强项)。
非常感谢任何关于如何继续的指导或帮助!
答案 0 :(得分:0)
如你所知
name_list <- split(my.data, my.data$name)
会为您提供已list
name
个数据框
您可以使用以下内容对该列表进行操作
lapply(name_list, function(x) approx(x$Value1, x$Value2))
如果您想要更具体的答案,则需要提供有关所需输出的更多详细信息。