我有一个17个数据帧的列表。从此列表中,我想为每个数据框“选择”第一列并将其放入新的数据框。所需的结果将是创建几个新的数据框。例如第一个结果数据帧包含所有17个数据帧的所有第一列。第二个结果数据框包含所有17个数据框的第二列。
我真的希望你能帮我这个忙!
欢呼
答案 0 :(得分:1)
使用package Test.DemoMavenEclipseProject;
import org.testng.annotations.Test;
import com.relevantcodes.extentreports.LogStatus;
import Actions.login_action;
import PageObjects.homePage;
public class LoginTest extends BasicTest {
@Test
public void Login() throws Exception {
//Create object for Report with filepath
//Start the test
logger=report.startTest("LoginTest");
//Log the status in report
logger.log(LogStatus.INFO, "Login link is displayed");
login_action.Execute(driver);
if (homePage.link_Logout(driver).isDisplayed())
logger.log(LogStatus.PASS, "Logged into the site successfully");
else
logger.log(LogStatus.FAIL, "Login is unsuccessful");
//End the test
Thread.sleep(2000);
}
}
purrr::map_dfc
答案 1 :(得分:1)
如果我理解正确,那么OP希望将k
个数据帧列表中的数据转置为{{1} } data.frames,每个维度n
行乘m
列。
数据帧列表
m
n
由
转换k
进入
在这里使用lst <- rep(list(mtcars[1:4, 1:5]), 3L) lst
[[1]]
mpg cyl disp hp drat
Mazda RX4 21.0 6 160 110 3.90
Mazda RX4 Wag 21.0 6 160 110 3.90
Datsun 710 22.8 4 108 93 3.85
Hornet 4 Drive 21.4 6 258 110 3.08
[[2]]
mpg cyl disp hp drat
Mazda RX4 21.0 6 160 110 3.90
Mazda RX4 Wag 21.0 6 160 110 3.90
Datsun 710 22.8 4 108 93 3.85
Hornet 4 Drive 21.4 6 258 110 3.08
[[3]]
mpg cyl disp hp drat
Mazda RX4 21.0 6 160 110 3.90
Mazda RX4 Wag 21.0 6 160 110 3.90
Datsun 710 22.8 4 108 93 3.85
Hornet 4 Drive 21.4 6 258 110 3.08
是因为它会自动命名列。
答案 2 :(得分:1)
因此,您想获取列表中每个数据框的第一列并将其转换为数据框,然后对每个数据框的第二列执行相同操作,依此类推,直到到达每个数据框的最后一列数据框。我假设每个数据框都具有相同的尺寸。
这是一个使用嵌套base
函数的lapply
解决方案。输出是n data.frame
的列表,其中n是数据框中的列数。
在我的示例中,列表包含四个数据帧,每个帧三列。因此,输出包含每个四列的三个数据帧。
lapply(1:ncol(l[[1]]), function(y) as.data.frame(sapply(l, function(x) x[, y])))
[[1]]
V1 V2 V3 V4
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
[[2]]
V1 V2 V3 V4
1 2 2 2 2
2 3 3 3 3
3 4 4 4 4
4 5 5 5 5
5 6 6 6 6
[[3]]
V1 V2 V3 V4
1 3 3 3 3
2 4 4 4 4
3 5 5 5 5
4 6 6 6 6
5 7 7 7 7
样本数据:
l <- list(data.frame(a = c(1:5), b = c(2:6), c = c(3:7)), data.frame(a = c(1:5), b = c(2:6), c = c(3:7)), data.frame(a = c(1:5), b = c(2:6), c = c(3:7)), data.frame(a = c(1:5), b = c(2:6), c = c(3:7)))